Я не пробовал, но что-то подсказывает, что можно при перетаскивании зависимого окна смотреть, если оно находится в определенной области, то просто зависимое окно прятать и добавлять виджет зависимого окна в QTabWidget.
То есть примерно так:
если позиция зависимого окна изменяется, то смотреть если его левая часть его заголовка рядом с кнопками (которые означают закладки) QTabWidget, то зависимоеокно.hide, tabwidget.addwidget(зависимоеокно), ну и что-то такое. И наоборот смотреть если пользователь драгает закладку, то отделять ее из tabwidget и зависимоеокно.show(). Все это не выполняя уничтожение виджета зависимого окна.
Сам не пробовал, просто прочитал и такая идея пришла. Не пинайте если бред.