### Godot version

v4.0.stable.official [92bee43ad]

### System information

windows 10

### Issue description

best explained with pictures:
![image](https://user-images.githubusercontent.com/60553849/224195360-2cdfeeaf-6b97-4aed-8671-bf2d4b38ed27.png)
precise position of target:
![image](https://user-images.githubusercontent.com/60553849/224195244-0207434d-21ec-465b-8200-df0fe9e6216a.png)
as you can see, when the target is on the seam between triangles that runs from one hole to another, the path gains an erroneous point at the corner of one of the holes, before doubling back to the target.
only happens at very precise target positions.

seems related to #67480. hopefully the more minimal repro can be of help.

### Steps to reproduce

run repro project, enable visible navigation, and try to position the mouse as shown in the above image.
i tried printing out the mouse position when the bug was occurring and setting the target to that value, but wasn't able to reproduce the bug that way.

### Minimal reproduction project

[bug.zip](https://github.com/godotengine/godot/files/10937539/bug.zip)

if (obstacles_dirty) {
		_update_rvo_obstacles_tree_2d();
	}
	if (agents_dirty) {
		_update_rvo_agents_tree_2d();
		_update_rvo_agents_tree_3d();
	}
}
void NavMap::compute_single_avoidance_step_2d(uint32_t index, NavAgent **agent) {
	(*(agent + index))->get_rvo_agent_2d()->computeNeighbors(&rvo_simulation_2d);
	(*(agent + index))->get_rvo_agent_2d()->computeNewVelocity(&rvo_simulation_2d);
	(*(agent + index))->get_rvo_agent_2d()->update(&rvo_simulation_2d);
	(*(agent + index))->update();
}
void NavMap::compute_single_avoidance_step_3d(uint32_t index, NavAgent **agent) {
	(*(agent + index))->get_rvo_agent_3d()->computeNeighbors(&rvo_simulation_3d);
	(*(agent + index))->get_rvo_agent_3d()->computeNewVelocity(&rvo_simulation_3d);
	(*(agent + index))->get_rvo_agent_3d()->update(&rvo_simulation_3d);
	(*(agent + index))->update();
}
void NavMap::step(real_t p_deltatime) {
	deltatime = p_deltatime;
	rvo_simulation_2d.setTimeStep(float(deltatime));
	rvo_simulation_3d.setTimeStep(float(deltatime));
	if (active_2d_avoidance_agents.size() > 0) {
		if (use_threads && avoidance_use_multiple_threads) {
			WorkerThreadPool::GroupID group_task = WorkerThreadPool::get_singleton()->add_template_group_task(this, &NavMap::compute_single_avoidance_step_2d, active_2d_avoidance_agents.ptr(), active_2d_avoidance_agents.size(), -1, true, SNAME("RVOAvoidanceAgents2D"));
			WorkerThreadPool::get_singleton()->wait_for_group_task_completion(group_task);
		} else {
			for (NavAgent *agent : active_2d_avoidance_agents) {