Crash dumps (Jul 6 and Jul 11) show EXCEPTION_ACCESS_VIOLATION at
QWidget::mapTo() called from QWidgetRepaintManager::flush(): a widget
still tracked in needsFlushWidgets was reparented into another top
level window, so walking the parent chain towards the old tlw runs off
the top and dereferences nullptr (read at 0x28).
Add a qtbase patch that null-guards QWidget::mapTo/mapFrom and makes
QWidgetRepaintManager::flush() skip widgets whose window() is no longer
our tlw. Wire repo-local patches_extra/qtbase_<ver> into prepare.py:
applied after desktop-app/patches and hashed into the qt stage cache
key, so CI rebuilds Qt automatically.