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

r_ret = get_callback_mode_method();
	} else if (name == "playback_process_mode") {
		r_ret = get_callback_mode_process();
	} else if (name == "playback_active") {
		r_ret = is_active();
#endif 
	} else {
		return false;
	}
	return true;
}
void AnimationPlayer::_validate_property(PropertyInfo &p_property) const {
	AnimationMixer::_validate_property(p_property);
	if (p_property.name == "current_animation") {
		List<String> names;
		for (const KeyValue<StringName, AnimationData> &E : animation_set) {
			names.push_back(E.key);
		}
		names.push_front("[stop]");
		String hint;
		for (List<String>::Element *E = names.front(); E; E = E->next()) {
			if (E != names.front()) {
				hint += ",";
			}
			hint += E->get();
		}
		p_property.hint_string = hint;
	}
}
void AnimationPlayer::_get_property_list(List<PropertyInfo> *p_list) const {