Сигналы из-за ресурсоёмкой функции теряться не должны, но должны приходить по завершении функции, если конечно у вас не вызывается обработчик событий внутри функции.
Скорее всего вы что-то делаете не так.
Для уверенности поставьте Qt::QueuedConnection в явном виде.
Ну и код прикладывайте, когда что-то спрашиваете.
У меня стоит Qt::DirectConnection, это хуже?
Код, зараза, большой черезчур...