### Godot version

4.2-rc1

### System information

Windows 11, Vulkan

### Issue description

When using the NavigationAgent2D the "target reached" signal usually does not trigger if the target desired distance value is below the path desired distance.  If, however, the navigation agent target position is set while the agent is within the desired distance then it will reliably trigger.

This can be simulated by either issuing a nearby move command or by setting (and thus recalculating) the target position every frame.

### Steps to reproduce

1. Implement a basic CharacterBody2D
2. Add a NavigationAgent2D node and leave the default values
3. Set up the CharacterBody2D to move when its NavigationAgent2D has its movement position set (based on the Using NavigationAgents documentation)
4. Connect the on_target_reached and on_navigation_finished signals
5. Move the character around and observe that navigation is finished before the target is reached when the target position is set beyond the target desired distance
6. Move the character a small distance within the target desired distance; observe the target reached signal reliably triggers
7. Set the target desired distance higher than the path desired distance (or vice versa); observe that the target reached signal more reliably triggers.

### Minimal reproduction project

[target-reached-test.zip](https://github.com/godotengine/godot/files/13444552/target-reached-test.zip)

uint32_t get_avoidance_layers() const;
	void set_avoidance_mask(uint32_t p_mask);
	uint32_t get_avoidance_mask() const;
	void set_avoidance_layer_value(int p_layer_number, bool p_value);
	bool get_avoidance_layer_value(int p_layer_number) const;
	void set_avoidance_mask_value(int p_mask_number, bool p_value);
	bool get_avoidance_mask_value(int p_mask_number) const;
	void set_avoidance_priority(real_t p_priority);
	real_t get_avoidance_priority() const;
	void set_debug_enabled(bool p_enabled);
	bool get_debug_enabled() const;
	void set_debug_use_custom(bool p_enabled);
	bool get_debug_use_custom() const;
	void set_debug_path_custom_color(Color p_color);
	Color get_debug_path_custom_color() const;
	void set_debug_path_custom_point_size(float p_point_size);
	float get_debug_path_custom_point_size() const;
	void set_debug_path_custom_line_width(float p_line_width);
	float get_debug_path_custom_line_width() const;
private:
	void update_navigation();
	void _request_repath();
	void _check_distance_to_target();
#ifdef DEBUG_ENABLED
	void _navigation_debug_changed();
	void _update_debug_path();
#endif 
};
#endif