### 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)

if (end_reached) {
		
		if (tmp_from == playback.current.from->animation->get_instance_id()) {
			if (playback_queue.size()) {
				String old = playback.assigned;
				play(playback_queue.front()->get());
				String new_name = playback.assigned;
				playback_queue.pop_front();
				if (end_notify) {
					emit_signal(SceneStringNames::get_singleton()->animation_changed, old, new_name);
				}
			} else {
				_clear_caches();
				playing = false;
				_set_process(false);
				if (end_notify) {
					emit_signal(SceneStringNames::get_singleton()->animation_finished, playback.assigned);
					if (movie_quit_on_finish && OS::get_singleton()->has_feature("movie")) {
						print_line(vformat("Movie Maker mode is enabled. Quitting on animation finish as requested by: %s", get_path()));
						get_tree()->quit();
					}
				}
			}
		}
		end_reached = false;
		end_notify = false;
	}
	tmp_from = ObjectID();
}
void AnimationPlayer::queue(const StringName &p_name) {