### Godot version

v4.1.stable.official [970459615]

### System information

MacOS Big Sure 11.3

### Issue description

I got a bug report on my project and then did a deeper analysis to find the rootcause of Godot crashing on exit.
https://github.com/MikeSchulze/gdUnit4/issues/225

short story
- i removed all classes and resources step by step but still crashs at Godot exit
- finally i find out a simple print statement in the `func _exit_tree():` let the editor crash at exit.


### Steps to reproduce

Step one
- Create a new Project
- Create a new plugin over the editor provided plugin creation tool
- activate and exit ... works

Step two
- open the `plugin.gd` and add a print statement to `func _exit_tree():`

```
@tool
extends EditorPlugin


func _enter_tree():
	# Initialization of the plugin goes here.
	pass


func _exit_tree():
	prints("_exit_tree")
	# Clean-up of the plugin goes here.
	pass

```

- close/restart the editor is crashing at exit


### Minimal reproduction project

n/a
}
		for (EditorPlugin *plugin : item_plugins) {
			if (active_plugins[owner_id].has(plugin)) {
				plugin->edit(p_object);
				continue;
			}
			for (KeyValue<ObjectID, HashSet<EditorPlugin *>> &kv : active_plugins) {
				if (kv.key != owner_id) {
					EditorPropertyResource *epres = Object::cast_to<EditorPropertyResource>(ObjectDB::get_instance(kv.key));
					if (epres && kv.value.has(plugin)) {
						
						epres->fold_resource();
					}
					kv.value.erase(plugin);
				}
			}
			active_plugins[owner_id].insert(plugin);
			_plugin_over_edit(plugin, p_object);
		}
	} else {
		hide_unused_editors(p_editing_owner);
	}
}
void EditorNode::push_node_item(Node *p_node) {
	if (p_node || Object::cast_to<Node>(InspectorDock::get_inspector_singleton()->get_edited_object()) || Object::cast_to<MultiNodeEdit>(InspectorDock::get_inspector_singleton()->get_edited_object())) {
		
		push_item(p_node);
	}
}
void EditorNode::push_item(Object *p_object, const String &p_property, bool p_inspector_only) {