### 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 (c.assigned != name) { 
		c.current.pos = p_from_end ? c.current.from->animation->get_length() : 0;
		c.assigned = name;
		emit_signal(SNAME("current_animation_changed"), c.assigned);
	} else {
		if (p_from_end && c.current.pos == 0) {
			
			c.current.pos = c.current.from->animation->get_length();
		} else if (!p_from_end && c.current.pos == c.current.from->animation->get_length()) {
			
			c.current.pos = 0;
		} else if (playing) {
			return;
		}
	}
	c.seeked = false;
	c.started = true;
	_set_process(true); 
	playing = true;
	emit_signal(SceneStringNames::get_singleton()->animation_started, c.assigned);
	if (is_inside_tree() && Engine::get_singleton()->is_editor_hint()) {
		return; 
	}
	StringName next = animation_get_next(p_name);
	if (next != StringName() && animation_set.has(next)) {
		queue(next);
	}
}
bool AnimationPlayer::is_playing() const {