А как выходить из ситуации? Записывать промежуточный вариант в какой-то кеш и в конце каждой функции проверять чёт там в кеше и в зависимости от результата что-то выполнять? Я говорю именно про ситуации, когжа ты обращаешься к нескольком тормозным АПИ.
за тем, что по другому никак. Ты конечно можешь использовать какие-нибудь очереди и отдельно от работы совершать из них запросы или по планировшику раз в н-времени, но в любом случае, по прямому пути ты будешь ждать все 30 секунд
в случае внешних запросов каким-нибудь curl, есть мультипоток, можно сразу отправить н-запросов, но ты все равно будешь ждать 30 секунд, пока обработается первый и второй запросы