Перевести синхронное выполнение кода их общего кода в кубик точно нельзя. Но если у вас идет вызов общего кода из кубика, то можно сделать возврат управления к этому кубику который создал экземпляр класса общего кода. В зенке просто каждый кубик это отдельный экземпляр класса как я понимаю. И при этом нельзя обратиться из одного кубика к другому. Кубик получается сакм по себе анонимный метод.
Можно создать асинхронную функцию. Запускать ей в кубике и с каким-то интервалом проверять её статус в кубике. Если лимит времени исчерпан - подать сигнал на функцию об отмене и идти дальше. Но функция отменится только если варианты отмены предусмотрены. Иначе так и будет там висеть пока не выполниться
Вообще, если вы нормально хотите выстроить архитектуру приложения и спокойно передавать управление, куда вам надо, пользуйтесь одним кубиком, проект VS называется, я все проекты так пишу и горя не знаю