### 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)

TreeItem *prev = nullptr;
	if (!selected_item) {
		prev = get_last_item();
		selected_col = 0;
	} else {
		prev = selected_item->get_prev_visible();
	}
	if (select_mode == SELECT_MULTI) {
		if (!prev) {
			return;
		}
		selected_item = prev;
		emit_signal(SNAME("cell_selected"));
		queue_redraw();
	} else {
		int col = selected_col < 0 ? 0 : selected_col;
		while (prev && !prev->cells[col].selectable) {
			prev = prev->get_prev_visible();
		}
		if (!prev) {
			return; 
		}
		prev->select(col);
	}
	ensure_cursor_is_visible();
	accept_event();
}
void Tree::_go_down() {