Отдать обработку в другой процесс, быстро вернуть что-то, чтобы не было таймаута и чтобы пользователь чем-то был занят и не висел.
в общем, как и ожидалось - как только дашь ответ, то функция тут же прибивается, ничего в ней не сделать уже
нужно делать очередь (Message Queue), а оттуда по триггеру вызывать функцию.. но в этом случае вызов функции уже будет платным