### Godot version

v4.1.stable.official [970459615], Also tested on v3.5.2.stable.official [170ba337a]

### System information

Godot v4.1.stable - macOS 13.4.0 - Vulkan (Forward+) - integrated Apple M1 - Apple M1 (8 Threads)

### Issue description

When creating Area3Ds using `PhysicsServer.area_create()`, an Area3D node doesn't see them in `get_overlapping_areas()`, (it returns `[]`). Interestingly, the Node Area3D's `has_overlapping_areas()` shows true at the correct time.
I have ensured that I am setting the correct collision layer & mask on both, and I have tried using `area_set_area_monitor_callback()` on the PhysicsServer area to no avail. 
I tested and this also doesn't seem to be working in 3.5 (using the correct class names ofc), so this could be intended behaviour? Either way it would be really nice to be able to have these collisions detected without having to use PhysicsServer for everything.

### Steps to reproduce

Take a look at the projects uploaded. You can use the up/down arrow keys to move the Area3D node up and down, while the RichText gives info on what it's seeing.

### Minimal reproduction project

[Godot 4.1 PhysicsServer.zip](https://github.com/godotengine/godot/files/12047556/Godot.4.1.PhysicsServer.zip)
[Godot 3.5 PhysicsServer.zip](https://github.com/godotengine/godot/files/12047555/Godot.3.5.PhysicsServer.zip)
if (node) {
			E->value.shapes.insert(ShapePair(p_body_shape, p_area_shape));
		}
		if (E->value.in_tree) {
			emit_signal(SceneStringNames::get_singleton()->body_shape_entered, p_body, node, p_body_shape, p_area_shape);
		}
	} else {
		E->value.rc--;
		if (node) {
			E->value.shapes.erase(ShapePair(p_body_shape, p_area_shape));
		}
		bool in_tree = E->value.in_tree;
		if (E->value.rc == 0) {
			body_map.remove(E);
			if (node) {
				node->disconnect(SceneStringNames::get_singleton()->tree_entered, callable_mp(this, &Area3D::_body_enter_tree));
				node->disconnect(SceneStringNames::get_singleton()->tree_exiting, callable_mp(this, &Area3D::_body_exit_tree));
				if (in_tree) {
					emit_signal(SceneStringNames::get_singleton()->body_exited, obj);
				}
			}
		}
		if (node && in_tree) {
			emit_signal(SceneStringNames::get_singleton()->body_shape_exited, p_body, obj, p_body_shape, p_area_shape);
		}
	}
	locked = false;
	unlock_callback();
}
void Area3D::_clear_monitoring() {