Вопрос сформулирован не очень четко, не вполне понятно, в чем именно заключается проблема это всё протестить, и почему время-зависимые процессы тут представляют сложность. Рискну предложить столь же расплывчатую схему действий (безо всяких методологий, а на пальцах):
1. В идеале — написать подробные сценарии использования (Use Case) для регулярной проверки правильной работы бизнес-логики.
2. Описать каждый интерфейс, который там есть.
3. Для каждого интерфейса понаписать заглушек, которые возвращают правильные значения, но ничего не делают.
4. Протестировать интерфейсы каждого компонента отдельно с помощью заглушек.
5. Протестировать каждый workflow по сценариям использования. Где есть временные лакуны — можно поставить искусственные задержки, лучше случайные, но чтобы из значение писалось в логи.
6. Написать автоматические тесты для всех интерфейсов и для прогона сценариев, если это возможно, и запускать после каждой доработки. Курить логи.
7. Проводить творческое тестирование на тему «как бы его еще обрушить»?