Quick answer: Godot 4 parallel tween emitting 'finished' early when only one step completes? Parallel grouping requires set_parallel on each step - default chain semantics use serial.
Two property tweens in parallel: alpha 1s, scale 2s. finished fires at 1s.
Mark each step parallel
tween.tween_property(node, "modulate:a", 0, 1)
tween.parallel().tween_property(node, "scale", ..., 2)parallel() applies to the next step; everything else is serial.
Use set_parallel for whole tween
tween.set_parallel(true) makes every step parallel; revert with tween.chain() when needed.
Verify with print on finish
Print at finished. The reported time should be max(steps), not min(steps).
“Tween defaults to serial. Parallel is opt-in per step.”
Build a wrapper that takes a list of properties+durations and runs in parallel. Less boilerplate per call site.