### Godot version

4.2 Stable

### System information

Linux

### Issue description

Calling TreeItem set_text() on a TreeItem that was removed via remove_child() causes debugging to end and the application to close without any error message.

### Steps to reproduce

Run the included example to get the debugger to crash. Comment out "treeItem.remove_child(subTreeItem)" for normal behaviour. 

### Minimal reproduction project

[treeItemCrash.zip](https://github.com/godotengine/godot/files/13534005/treeItemCrash.zip)

if (mb->get_button_index() == MouseButton::LEFT) {
				if (single_select_defer) {
					select_single_item(single_select_defer, root, single_select_defer_column);
					single_select_defer = nullptr;
				}
				range_click_timer->stop();
				if (pressing_for_editor) {
					if (range_drag_enabled) {
						range_drag_enabled = false;
						Input::get_singleton()->set_mouse_mode(Input::MOUSE_MODE_VISIBLE);
						warp_mouse(range_drag_capture_pos);
					} else {
						Rect2 rect = get_selected()->get_meta("__focus_rect");
						Point2 mpos = mb->get_position();
						int icon_size_x = 0;
						Ref<Texture2D> icon = get_selected()->get_icon(selected_col);
						if (icon.is_valid()) {
							Rect2i icon_region = get_selected()->get_icon_region(selected_col);
							if (icon_region == Rect2i()) {
								icon_size_x = icon->get_width();
							} else {
								icon_size_x = icon_region.size.width;
							}
						}
						
						if (rtl) {
							mpos.x = get_size().width - (mpos.x + icon_size_x);
						} else {
							mpos.x -= icon_size_x;
						}