Все оказалось просто элементарно.
Я добавил сигнал дочерним окнам который эмитится когда они активируются.
В слоте обрабатывающем эти сигналы вызываю win32 функцию:
DefWindowProc(effectiveWinId(), WM_NCACTIVATE, TRUE, 0);
effectiveWinId() - hwnd окна у которого должен оставаться заголовок актвиным.
WM_NCACTIVATE - это и есть идентификатор для сообщения отрисовки заголовка.
TRUE - ставлю, чтобы заголовок отображался активным.
0 - этот параметр так и не разобрался как правильно выставить, но вроде с нулем все работает.
Соответственно никаких хуков теперь не нужно.