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

int size = get_child_count();
	TypedArray<TreeItem> arr;
	arr.resize(size);
	for (int i = 0; i < size; i++) {
		arr[i] = children_cache[i];
	}
	return arr;
}
void TreeItem::clear_children() {
	TreeItem *c = first_child;
	while (c) {
		TreeItem *aux = c;
		c = c->get_next();
		aux->parent = nullptr; 
		memdelete(aux);
	}
	first_child = nullptr;
};
int TreeItem::get_index() {
	int idx = 0;
	TreeItem *c = this;
	while (c) {
		c = c->get_prev();
		idx++;
	}
	return idx - 1;
}
#ifdef DEV_ENABLED
void TreeItem::validate_cache() const {