### 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)

} break;
		case NOTIFICATION_EXIT_TREE: {
			set_agent_parent(nullptr);
			set_physics_process_internal(false);
#ifdef DEBUG_ENABLED
			if (debug_path_instance.is_valid()) {
				RS::get_singleton()->instance_set_visible(debug_path_instance, false);
			}
#endif 
		} break;
		case NOTIFICATION_PAUSED: {
			if (agent_parent) {
				NavigationServer3D::get_singleton()->agent_set_paused(get_rid(), !agent_parent->can_process());
			}
		} break;
		case NOTIFICATION_UNPAUSED: {
			if (agent_parent) {
				NavigationServer3D::get_singleton()->agent_set_paused(get_rid(), !agent_parent->can_process());
			}
		} break;
		case NOTIFICATION_INTERNAL_PHYSICS_PROCESS: {
			if (agent_parent && avoidance_enabled) {
				NavigationServer3D::get_singleton()->agent_set_position(agent, agent_parent->get_global_position());
			}
			if (agent_parent && target_position_submitted) {
				if (velocity_submitted) {
					velocity_submitted = false;
					if (avoidance_enabled) {
						if (!use_3d_avoidance) {
							if (keep_y_velocity) {