### Godot version

v4.0.beta12.mono.official [3c9bf4bc2]

### System information

Windows 10

### Issue description

When using GetTree().ChangeScene (or GetTree().ReloadCurrentScene), the orphan node count in Monitors goes up by the number of nodes in the target scene.

This effect is amplified when running a scene that has lots of nodes.


I've also tested this in the previous beta (v4.0.beta11.mono.official [91713ced8]) and confirmed the issue didn't exist there.

### Steps to reproduce

1. Run the included Minimal Reproduction Project.
2. Open the Debugger/Monitors tab.
3. Press "Space" to load Scene2.tcsn (2 Nodes).
 - Orphan nodes increases by 2.
5. Press "Space" to load Scene1.tcsn (3 Nodes).
 - Orphan nodes increases by 3.

### Minimal reproduction project

[MRP.zip](https://github.com/godotengine/godot/files/10415860/MRP.zip)

#include "servers/physics_server_2d.h"
#include "servers/physics_server_3d.h"
#include "window.h"
#include <stdio.h>
#include <stdlib.h>
void SceneTreeTimer::_bind_methods() {
	ClassDB::bind_method(D_METHOD("set_time_left", "time"), &SceneTreeTimer::set_time_left);
	ClassDB::bind_method(D_METHOD("get_time_left"), &SceneTreeTimer::get_time_left);
	ADD_PROPERTY(PropertyInfo(Variant::FLOAT, "time_left", PROPERTY_HINT_NONE, "suffix:s"), "set_time_left", "get_time_left");
	ADD_SIGNAL(MethodInfo("timeout"));
}
void SceneTreeTimer::set_time_left(double p_time) {
	time_left = p_time;
}
double SceneTreeTimer::get_time_left() const {
	return time_left;
}
void SceneTreeTimer::set_process_always(bool p_process_always) {
	process_always = p_process_always;
}
bool SceneTreeTimer::is_process_always() {
	return process_always;
}
void SceneTreeTimer::set_process_in_physics(bool p_process_in_physics) {
	process_in_physics = p_process_in_physics;
}
bool SceneTreeTimer::is_process_in_physics() {
	return process_in_physics;
}
void SceneTreeTimer::set_ignore_time_scale(bool p_ignore) {