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

ERR_FAIL_NULL(p_item);
	update_scrollbars();
	
	const Size2 area_size = _get_content_rect().size;
	int y_offset = get_item_offset(p_item);
	if (y_offset != -1) {
		const int tbh = _get_title_button_height();
		y_offset -= tbh;
		const int cell_h = compute_item_height(p_item) + theme_cache.v_separation;
		int screen_h = area_size.height - tbh;
		if (p_center_on_item) {
			v_scroll->set_value(y_offset - (screen_h - cell_h) / 2.0f);
		} else {
			if (cell_h > screen_h) { 
				v_scroll->set_value(y_offset);
			} else if (y_offset + cell_h > v_scroll->get_value() + screen_h) {
				v_scroll->set_value(y_offset - screen_h + cell_h);
			} else if (y_offset < v_scroll->get_value()) {
				v_scroll->set_value(y_offset);
			}
		}
	}
}
void Tree::set_h_scroll_enabled(bool p_enable) {