### Godot version

4.2 1ba920f

### System information

Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce GTX 1060 (NVIDIA; 30.0.15.1403) - Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz (8 Threads)

### Issue description

```GDScript
func _ready() -> void:
	$AnimationPlayer.play("new_animation")
	$AnimationPlayer.advance(0)
```
The animation has a single track with Update Mode set to discrete. It does not play, no matter the argument used.
Removing `advance()` will make it play.

Works correctly in rc1.

### Steps to reproduce

1. Run MRP on master
2. Run MRP in 4.2 rc1

### Minimal reproduction project

[brokedvance.zip](https://github.com/godotengine/godot/files/13460977/brokedvance.zip)

return hash_one_uint64((uint64_t(p_key.from.hash()) << 32) | uint32_t(p_key.to.hash()));
		}
		bool operator==(const BlendKey &bk) const {
			return from == bk.from && to == bk.to;
		}
		bool operator<(const BlendKey &bk) const {
			if (from == bk.from) {
				return to < bk.to;
			} else {
				return from < bk.from;
			}
		}
	};
	HashMap<BlendKey, double, BlendKey> blend_times;
	List<StringName> playback_queue;
	ObjectID tmp_from;
	bool end_reached = false;
	bool end_notify = false;
	StringName autoplay;
	bool reset_on_save = true;
	bool movie_quit_on_finish = false;
	void _process_playback_data(PlaybackData &cd, double p_delta, float p_blend, bool p_seeked, bool p_started, bool p_is_current = false);
	void _blend_playback_data(double p_delta, bool p_started);
	void _stop_internal(bool p_reset, bool p_keep_state);
	bool playing = false;
protected:
	bool _set(const StringName &p_name, const Variant &p_value);
	bool _get(const StringName &p_name, Variant &r_ret) const;