Перерыл форум, много кто спрашивал о таком коде или кубике, но решения так и нет.
Как я подумал решить это.
Перед выполнением основного потока, запускать параллельный поток async await с указанным таймаутом, после которого он должен бросить исключение.
Допустим ОСНОВНОЙ метод MainWork...