### Godot version

4.1 rc 1

### System information

Windows 11

### Issue description

When an agent with navigation avoidance enabled reaches a target, it will continue going past it in the same direction. In 4.0, it would change direction and move towards the target again. 

### Steps to reproduce

Set up a simple navigation scene with no additional code to stop once the agent reaches the target. You should see the agent continue past the target once it reaches it.

To use the MRP, just run the main scene.

### Minimal reproduction project

[Navigation Avoidance MRP.zip](https://github.com/godotengine/godot/files/11908180/Navigation.Avoidance.MRP.zip)

const Vector<int32_t> &navigation_path_types = navigation_result->get_path_types();
		const TypedArray<RID> &navigation_path_rids = navigation_result->get_path_rids();
		const Vector<int64_t> &navigation_path_owners = navigation_result->get_path_owner_ids();
		while (origin.distance_to(navigation_path[navigation_path_index]) < path_desired_distance) {
			Dictionary details;
			const Vector2 waypoint = navigation_path[navigation_path_index];
			details[SNAME("position")] = waypoint;
			int waypoint_type = -1;
			if (path_metadata_flags.has_flag(NavigationPathQueryParameters2D::PathMetadataFlags::PATH_METADATA_INCLUDE_TYPES)) {
				const NavigationPathQueryResult2D::PathSegmentType type = NavigationPathQueryResult2D::PathSegmentType(navigation_path_types[navigation_path_index]);
				details[SNAME("type")] = type;
				waypoint_type = type;
			}
			if (path_metadata_flags.has_flag(NavigationPathQueryParameters2D::PathMetadataFlags::PATH_METADATA_INCLUDE_RIDS)) {
				details[SNAME("rid")] = navigation_path_rids[navigation_path_index];
			}
			if (path_metadata_flags.has_flag(NavigationPathQueryParameters2D::PathMetadataFlags::PATH_METADATA_INCLUDE_OWNERS)) {
				const ObjectID waypoint_owner_id = ObjectID(navigation_path_owners[navigation_path_index]);
				
				Object *owner = nullptr;
				if (waypoint_owner_id.is_valid()) {
					owner = ObjectDB::get_instance(waypoint_owner_id);
				}
				details[SNAME("owner")] = owner;
				if (waypoint_type == NavigationPathQueryResult2D::PATH_SEGMENT_TYPE_LINK) {
					const NavigationLink2D *navlink = Object::cast_to<NavigationLink2D>(owner);
					if (navlink) {
						Vector2 link_global_start_position = navlink->get_global_start_position();
						Vector2 link_global_end_position = navlink->get_global_end_position();
						if (waypoint.distance_to(link_global_start_position) < waypoint.distance_to(link_global_end_position)) {