Problem tweening 'global_position' after setting Scale and PivotOffset

Godot Version

v4.2.stable.mono.official [46dc27791]

I’m trying to use a tween to scale and move a control (TextureButton) but the final position is incorrect if Scale is not 1 when PivotOffset is not 0.

This code correctly positions the control at (0,0):

ctrl.PivotOffset = new Vector2(64f, 64f);
tween.TweenProperty(ctrl, "scale", new Vector2(1.0f, 1.0f), 1.0f);
tween.TweenProperty(ctrl, "global_position", Vector2.Zero, 1.0f);

Changing the scale from 1.0 to 0.9 incorrectly positions the control at (6.4000015, 6.4000015):

ctrl.PivotOffset = new Vector2(64f, 64f);
tween.TweenProperty(ctrl, "scale", new Vector2(0.9f, 0.9f), 1.0f);
tween.TweenProperty(ctrl, "global_position", Vector2.Zero, 1.0f);

Same code but with the PivotOffset now set to (0,0) works correctly again:

ctrl.PivotOffset = new Vector2(0f, 0f);
tween.TweenProperty(ctrl, "scale", new Vector2(0.9f, 0.9f), 1.0f);
tween.TweenProperty(ctrl, "global_position", Vector2.Zero, 1.0f);

Any ideas why this might be happening and how I can fix it?