### Godot version

4.2

### System information

Linux

### Issue description

A nested state machine isn't traveling to its animation in `_ready()` in 4.2 as it was in 4.1.3.

In the ready function, we make the `root` state machine travel to the state of the `Stages` nested state machine. Then we immediately call the `Stages` nested state machine to travel to `Stage2`. This works fine in Godot v4.1.3, but not in Godot v4.2, where it seems a delay is first needed for the second travel animation to work.

![image](https://github.com/godotengine/godot/assets/788630/f1582a99-a68e-45d9-82b8-8367e62a9cba)
![image](https://github.com/godotengine/godot/assets/788630/c7c1f9fa-c78b-4259-bd36-81ebd8cef9aa)

### Steps to reproduce

Run the MRP below in 4.1.3 and 4.2.

In 4.1.3, the animation tree will reach `Stage2` and show Finished on the screen.

In 4.2, the animation tree will only reach `Stage1` and show Stuck on the screen.

### Minimal reproduction project

[MRP-AnimationNodeStateMachinePlayback.zip](https://github.com/godotengine/godot/files/13533132/MRP-AnimationNodeStateMachinePlayback.zip)

uint64_t last_pass = 0;
	} *process_state = nullptr;
	Array _get_filters() const;
	void _set_filters(const Array &p_filters);
	friend class AnimationNodeBlendTree;
	double _blend_node(Ref<AnimationNode> p_node, const StringName &p_subpath, AnimationNode *p_new_parent, AnimationMixer::PlaybackInfo p_playback_info, FilterAction p_filter = FILTER_IGNORE, bool p_sync = true, bool p_test_only = false, real_t *r_activity = nullptr);
	double _pre_process(ProcessState *p_process_state, AnimationMixer::PlaybackInfo p_playback_info);
protected:
	virtual double _process(const AnimationMixer::PlaybackInfo p_playback_info, bool p_test_only = false);
	double process(const AnimationMixer::PlaybackInfo p_playback_info, bool p_test_only = false);
	void blend_animation(const StringName &p_animation, AnimationMixer::PlaybackInfo p_playback_info);
	double blend_node(Ref<AnimationNode> p_node, const StringName &p_subpath, AnimationMixer::PlaybackInfo p_playback_info, FilterAction p_filter = FILTER_IGNORE, bool p_sync = true, bool p_test_only = false);
	double blend_input(int p_input, AnimationMixer::PlaybackInfo p_playback_info, FilterAction p_filter = FILTER_IGNORE, bool p_sync = true, bool p_test_only = false);
	
	void blend_animation_ex(const StringName &p_animation, double p_time, double p_delta, bool p_seeked, bool p_is_external_seeking, real_t p_blend, Animation::LoopedFlag p_looped_flag = Animation::LOOPED_FLAG_NONE);
	double blend_node_ex(const StringName &p_sub_path, Ref<AnimationNode> p_node, double p_time, bool p_seek, bool p_is_external_seeking, real_t p_blend, FilterAction p_filter = FILTER_IGNORE, bool p_sync = true, bool p_test_only = false);
	double blend_input_ex(int p_input, double p_time, bool p_seek, bool p_is_external_seeking, real_t p_blend, FilterAction p_filter = FILTER_IGNORE, bool p_sync = true, bool p_test_only = false);
	void make_invalid(const String &p_reason);
	AnimationTree *get_animation_tree() const;
	static void _bind_methods();
	void _validate_property(PropertyInfo &p_property) const;
	GDVIRTUAL0RC(Dictionary, _get_child_nodes)
	GDVIRTUAL0RC(Array, _get_parameter_list)
	GDVIRTUAL1RC(Ref<AnimationNode>, _get_child_by_name, StringName)
	GDVIRTUAL1RC(Variant, _get_parameter_default_value, StringName)
	GDVIRTUAL1RC(bool, _is_parameter_read_only, StringName)
	GDVIRTUAL4RC(double, _process, double, bool, bool, bool)
	GDVIRTUAL0RC(String, _get_caption)
	GDVIRTUAL0RC(bool, _has_filter)
public: