### Godot version

4.1.1 stable 4.2. dev3

### System information

Win 10

### Issue description

[seek()](https://docs.godotengine.org/en/stable/classes/class_animationplayer.html?rtd_search=add_color_override#class-animationplayer-method-seek) is supposed to skip the keys inbetween current Timestamp and it's argument value Timestamp.

When playing an Animation in the AnimationPlayer which has a Call Method track key somewhere in the middle section for example, and then the user tries to "skip" that middle section using `seek()`, the Call Method track keys in the middle section are still handled, even though animation has skipped the middle section and the `update` argument is `false`.

So it basically behaves like [advance()](https://docs.godotengine.org/en/stable/classes/class_animationplayer.html?rtd_search=add_color_override#class-animationplayer-method-advance) should behave.
However, advance also does not behave as it should, since it advances further than it should and when setting Update in the seek() method to `true`, the Call Method track key is actually called twice!

### Steps to reproduce

Create an AnimationPlayer Animation of 5 seconds,
Add a script with two functions: One to seek(4.0) and another one to print("hi")
Add a Call Method Track and at Timestamp second 1.0 add a key to the seek() method and on Timestamp 2.5 add a key to print().
Play the scene and observe "hi" being printed
![image](https://github.com/godotengine/godot/assets/47016402/41f6dab0-9af6-46cd-95f1-e680a398e6af)

Set seek(4.0, true) to enable Update (like in advance method), and observe "hi" being printed twice!
Maybe related: https://github.com/godotengine/godot/issues/76773

### Minimal reproduction project

4.2. dev3 (issue is the same in 4.1.1 stable)
[animation_seek_bug.zip](https://github.com/godotengine/godot/files/12340066/animation_seek_bug.zip)
ClassDB::bind_method(D_METHOD("set_active", "active"), &AnimationPlayer::set_active);
	ClassDB::bind_method(D_METHOD("is_active"), &AnimationPlayer::is_active);
	ClassDB::bind_method(D_METHOD("set_speed_scale", "speed"), &AnimationPlayer::set_speed_scale);
	ClassDB::bind_method(D_METHOD("get_speed_scale"), &AnimationPlayer::get_speed_scale);
	ClassDB::bind_method(D_METHOD("get_playing_speed"), &AnimationPlayer::get_playing_speed);
	ClassDB::bind_method(D_METHOD("set_autoplay", "name"), &AnimationPlayer::set_autoplay);
	ClassDB::bind_method(D_METHOD("get_autoplay"), &AnimationPlayer::get_autoplay);
	ClassDB::bind_method(D_METHOD("set_reset_on_save_enabled", "enabled"), &AnimationPlayer::set_reset_on_save_enabled);
	ClassDB::bind_method(D_METHOD("is_reset_on_save_enabled"), &AnimationPlayer::is_reset_on_save_enabled);
	ClassDB::bind_method(D_METHOD("set_root", "path"), &AnimationPlayer::set_root);
	ClassDB::bind_method(D_METHOD("get_root"), &AnimationPlayer::get_root);
	ClassDB::bind_method(D_METHOD("find_animation", "animation"), &AnimationPlayer::find_animation);
	ClassDB::bind_method(D_METHOD("find_animation_library", "animation"), &AnimationPlayer::find_animation_library);
	ClassDB::bind_method(D_METHOD("clear_caches"), &AnimationPlayer::clear_caches);
	ClassDB::bind_method(D_METHOD("set_process_callback", "mode"), &AnimationPlayer::set_process_callback);
	ClassDB::bind_method(D_METHOD("get_process_callback"), &AnimationPlayer::get_process_callback);
	ClassDB::bind_method(D_METHOD("set_method_call_mode", "mode"), &AnimationPlayer::set_method_call_mode);
	ClassDB::bind_method(D_METHOD("get_method_call_mode"), &AnimationPlayer::get_method_call_mode);
	ClassDB::bind_method(D_METHOD("set_audio_max_polyphony", "max_polyphony"), &AnimationPlayer::set_audio_max_polyphony);
	ClassDB::bind_method(D_METHOD("get_audio_max_polyphony"), &AnimationPlayer::get_audio_max_polyphony);
	ClassDB::bind_method(D_METHOD("set_movie_quit_on_finish_enabled", "enabled"), &AnimationPlayer::set_movie_quit_on_finish_enabled);
	ClassDB::bind_method(D_METHOD("is_movie_quit_on_finish_enabled"), &AnimationPlayer::is_movie_quit_on_finish_enabled);
	ClassDB::bind_method(D_METHOD("get_current_animation_position"), &AnimationPlayer::get_current_animation_position);
	ClassDB::bind_method(D_METHOD("get_current_animation_length"), &AnimationPlayer::get_current_animation_length);
	ClassDB::bind_method(D_METHOD("seek", "seconds", "update"), &AnimationPlayer::seek, DEFVAL(false));
	ClassDB::bind_method(D_METHOD("advance", "delta"), &AnimationPlayer::advance);
	GDVIRTUAL_BIND(_post_process_key_value, "animation", "track", "value", "object", "object_idx");
	ADD_PROPERTY(PropertyInfo(Variant::NODE_PATH, "root_node"), "set_root", "get_root");
	ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "current_animation", PROPERTY_HINT_ENUM, "", PROPERTY_USAGE_EDITOR), "set_current_animation", "get_current_animation");
	ADD_PROPERTY(PropertyInfo(Variant::STRING_NAME, "assigned_animation", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NONE), "set_assigned_animation", "get_assigned_animation");