### Godot version

v4.1.1.stable.mono.official [bd6af8e0e]

### System information

Godot v4.1.1.stable.mono - Windows 10.0.19045 - Vulkan (Forward+) - dedicated Radeon RX 580 Series (Advanced Micro Devices, Inc.; 31.0.21902.5) - AMD Ryzen 7 2700X Eight-Core Processor (16 Threads)

### Issue description

## Problem

When using a NavigationAgent2D/3D, if `target_desired_distance` is below `path_desired_distance` (which is the default for NavigationAgent2D), `is_target_reached` will not become `true` even if you are within `target_desired_distance` distance to the `target_position`.

The documentation says nothing about that behavior.

If `target_desired_distance` is equal or above `path_desired_distance`, the problem won't appear.

## Expected behavior

If the position of the parent node of a NavigationAgent2D/3D is within `target_desired_distance` to `target_position`, `is_target_reached` invariably returns `true`.

## Code sample

```gdscript
extends CharacterBody2D

var movement_speed: float = 200.0

@export var target_node: Node2D
@onready var navigation_agent: NavigationAgent2D = $NavigationAgent2D

func _ready():
	navigation_agent.path_desired_distance = 20
	navigation_agent.target_desired_distance = 10
	call_deferred("actor_setup")

func actor_setup():
	await get_tree().physics_frame
	navigation_agent.target_position = target_node.global_position

func _physics_process(delta):
	var next_path_position = navigation_agent.get_next_path_position()
	
	var new_velocity = next_path_position - global_position
	velocity = new_velocity.normalized() * movement_speed

	move_and_slide()
	
	if navigation_agent.is_target_reached():
		print("Target reached") # this will never be printed
```

## Cause of the bug

I looked at the source code and the reason for this behavior is that once the last path waypoint has been reached, the distance check that changes `is_target_reached` to `true` won't run anymore.
It's an easy fix and I have a PR ready that I'll publish just after this bug report.

### Steps to reproduce

1. Open the MRP
2. Run the 2D or 3D scene
3. Observe the property values of the navigation agent that are printed to the output

### Minimal reproduction project

[Bug reproduction.zip](https://github.com/godotengine/godot/files/12772840/Bug.reproduction.zip)

PackedStringArray get_configuration_warnings() const override;
	void set_avoidance_layers(uint32_t p_layers);
	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;
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