### 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 &c = playback;
	bool seeked = c.seeked; 
	if (p_delta != 0) {
		c.seeked = false;
	}
	
	float blend = 1.0;
	for (List<Blend>::Element *E = c.blend.front(); E; E = E->next()) {
		Blend &b = E->get();
		blend = MAX(0, blend - b.blend_left);
		b.blend_left = MAX(0, b.blend_left - Math::absf(speed_scale * p_delta) / b.blend_time);
	}
	
	_process_playback_data(c.current, p_delta, blend, seeked, p_started, true);
	
	if (end_reached) {
		playback.blend.clear();
		return;
	}
	List<List<Blend>::Element *> to_erase;
	for (List<Blend>::Element *E = c.blend.front(); E; E = E->next()) {
		Blend &b = E->get();
		if (b.blend_left <= 0) {
			to_erase.push_back(E);