### Godot version

v4.1.rc1.official [1f9e540f1]

### System information

Windows 10

### Issue description

Attempting to reorder the children of a TabContainer results in an unintended ordering and incorrect undo states.

Also happens in v4.0.3.stable.official [5222a99f5].

https://github.com/godotengine/godot/assets/3820082/2c2458e3-88ad-46d9-8a04-f289a049984a



### Steps to reproduce

1. Add a new TabContainer
2. Add a few children to it
3. Drag and drop to erroneously reorder them
4. Attempt to undo the change

### Minimal reproduction project

N/A
Node *n = Object::cast_to<Node>(p_obj);
	if (!n) {
		return;
	}
	if (n->is_inside_tree()) {
		return;
	}
	Node *p = n;
	while (p->get_parent()) {
		p = p->get_parent();
	}
	String path;
	if (p == n) {
		path = n->get_name();
	} else {
		path = String(p->get_name()) + "/" + p->get_path_to(n);
	}
	List<String> info_strings;
	info_strings.push_back(path);
	info_strings.push_back(n->get_class());
	_print_orphan_nodes_map[p_obj->get_instance_id()] = info_strings;
}
#endif // DEBUG_ENABLED
void Node::print_orphan_nodes() {