Я бы не стал "пихнуть" никакой метод
Если интересует распараллеливание работы с внешними API, есть multicurl, им и стоит пользоваться в первую очередь
Если честно, на первый пробег глазами, ответ один - Переписать вопрос, расщедрившись на подробное описание и большие каты(С комментариями), вопросы оптимизации непростые даже для хорошего кода, а тут (Без агрессии мнение), он не очень, трудно понять вашу картину.
Так насколько вижу, хотя я разрабатываю на symfony с doctrine, вы обращаетесь к бд в цикле, это ой как плохо.. И непонятно зачем.
Есть пакетный запрос, сделайте список параметров плоским и вперёд, если данных много организуйте работу чанками, заверните обращение к бд в транзакцию, тогда всё вынесется в оперативку.
Вещи типа $this->room[$cart_min]
лучше всё таки делать безопасно через isset()
В идеале плюньте вы на эти массивы и опишите +- внятную модель процесса абстракциями, так общий порядок сильно вырастет а скорость едва ли пострадает(У меня хайлоад на котором 50мс это вообще то дохрена, и всё равно лапшу не пишем)