Quick answer: Godot 4 Tween finished signal never firing after pause/unpause? Tweens default to PAUSE_PROCESS - set the process mode or bind the tween to a node that ignores pause.

A UI fade-in tween paused with the menu. After unpause it never completes, leaving the panel at 50% alpha.

Bind to an unpausable node

var t = ui_node.create_tween()
ui_node.process_mode = Node.PROCESS_MODE_ALWAYS

The tween inherits the binding node's process mode. With PROCESS_MODE_ALWAYS, the tween advances during a paused tree.

Or use ignore_time_scale

tween.set_ignore_time_scale(true) keeps the tween running when Engine.time_scale changes, but it still pauses with the tree. Combine with the process_mode change.

Verify pause owner

If the tween was created on a freed node, tween.is_valid() returns false and signals never fire. Print this value at the suspected handoff point.

“Tweens follow their owner - if the owner pauses, the tween waits.”

Centralize UI tweens on a single 'UIRoot' node with PROCESS_MODE_ALWAYS set. Then no individual tween needs to think about pause.