У меня такая же проблема(ассинх функции) пришлось городить костыли чтобы даже если что то пошло не так, то создался новый поток который подхватил бы работу
Короче сам, допер, надо все где имеется вероятность вылететь обвернуть в игнорировать ошибки ошибки И оказывается при создании блока ошибки создается 2 переменные WAS_ERROR и ласт ерро. С ними короче и буду плясать.
Может кому понадобится.