### Godot version

4.2.rc1

### System information

win11

### Issue description
If you call animation.advance() after play() within a single process frame, the animation will not work properly.
The advance function does not work.
![image](https://github.com/godotengine/godot/assets/91177204/0edd6d63-9bfb-4860-8e14-1f0767bc4346)
The advance function does not work either.
![image](https://github.com/godotengine/godot/assets/91177204/fa5397d4-4615-44c9-aa7e-c2eae0e59a5f)
The advance function works, but 2 frames have already shown
![image](https://github.com/godotengine/godot/assets/91177204/c2df992a-ab64-43af-b9c7-89abb005b1c2)

This bug is not present in 4.1.3.stable.



### Steps to reproduce

create a scene with animation and run code like below.
```
func _ready():
	animation_player.play("new_animation")   
	animation_player.advance(5.0)
```
the advance function did nothing.

### Minimal reproduction project

[animation_play_advence.zip](https://github.com/godotengine/godot/files/13400233/animation_play_advence.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 = "*";