### Godot version

4.2-rc1

### System information

Windows 11

### Issue description

The issue does not exist on Godot 4.1.3, only in 4.2

When you call `seek()` on the AnimationPlayer, the animation does not update instantly and freezes for a brief moment.
So if you need to switch multiple animations in a short amount of time while also calling `seek()`, the animation will just stop.

### Steps to reproduce

- Add a Sprite2D
- Set a spritesheet for the Sprite2D
- Add an AnimationPlayer
- Create a Property animation track and add some frames
- Loop the animation
- Create a different animation for the same sprite an loop it
- Switch between animations and call `seek()` when you do

### Minimal reproduction project

The included project demonstrates the issue perfectly (I know that calling `play()` and `seek()` on each `_process()` is a bit overkill, but it does allow for a better demonstration). The same project works perfectly in Godot 4.1.3.

[AnimationBug.zip](https://github.com/godotengine/godot/files/13400011/AnimationBug.zip)

playback_queue.clear();
}
void AnimationPlayer::play_backwards(const StringName &p_name, double p_custom_blend) {
	play(p_name, p_custom_blend, -1, true);
}
void AnimationPlayer::play(const StringName &p_name, double p_custom_blend, float p_custom_scale, bool p_from_end) {
	StringName name = p_name;
	if (String(name) == "") {
		name = playback.assigned;
	}
	ERR_FAIL_COND_MSG(!animation_set.has(name), vformat("Animation not found: %s.", name));
	Playback &c = playback;
	if (c.current.from) {
		double blend_time = 0.0;
		
		BlendKey bk;
		bk.from = c.current.from->name;
		bk.to = name;
		if (p_custom_blend >= 0) {
			blend_time = p_custom_blend;
		} else if (blend_times.has(bk)) {
			blend_time = blend_times[bk];
		} else {
			bk.from = "*";