### Godot version

v4.1.stable.official [970459615]  < Steam

### System information

Godot v4.1.stable - Debian GNU/Linux trixie/sid trixie - Vulkan (Mobile) - dedicated NVIDIA GeForce GTX 1060 (nvidia) - Intel(R) Core(TM) i5-8400 CPU @ 2.80GHz (6 Threads)

### Issue description

When a tween is performed on a `Transform2D`, where the starting value has a scale which isn't `(1, 1)`, both the position and scale of the intermediate values will be incorrect.  However, the correct transform will be applied at the end of the tween:

https://github.com/godotengine/godot/assets/441188/d190e224-3212-457a-9ba6-563b09abe930



### Steps to reproduce

Eg:
```
var tween := create_tween()
var start := Transform2D(Vector2.RIGHT, Vector2.DOWN, Vector2(100,100)) * 0.5
var end := Transform2D(Vector2.RIGHT, Vector2.DOWN, Vector2(200, 100))
(tween.tween_property($Tweened, "transform", end, 2.0)
	.from(start)
	)
```

### Minimal reproduction project

Single self-contained scene. Click to start the tween:

[tween_transform2d.zip](https://github.com/godotengine/godot/files/11995298/tween_transform2d.zip)

if (Math::is_equal_approx(t0.time, t1.time) || Math::is_equal_approx(t1.time, t2.time)) {
		return true;
	}
	if ((t0.value - t1.value).length() < p_allowed_precision_error && (t1.value - t2.value).length() < p_allowed_precision_error) {
		return true;
	}
	
	Vector3 vc0 = (t1.value - t0.value) / (t1.time - t0.time);
	Vector3 vc1 = (t2.value - t1.value) / (t2.time - t1.time);
	double v0 = vc0.length();
	double v1 = vc1.length();
	
	if (abs(v0 - v1) < p_allowed_precision_error) {
		return true;
	} else if (abs(v0) < p_allowed_precision_error || abs(v1) < p_allowed_precision_error) {
		return false;
	}
	
	if (vc0.normalized().dot(vc1.normalized()) >= 1.0 - p_allowed_angular_error * 2.0) {
		v0 = abs(v0);
		v1 = abs(v1);
		double ratio = v0 < v1 ? v0 / v1 : v1 / v0;
		if (ratio >= 1.0 - p_allowed_velocity_err) {
			return true;
		}
	}
	return false;
}
bool Animation::_quaternion_track_optimize_key(const TKey<Quaternion> t0, const TKey<Quaternion> t1, const TKey<Quaternion> t2, real_t p_allowed_velocity_err, real_t p_allowed_angular_error, real_t p_allowed_precision_error) {