Не знаю как там устроено с смс( не пробовал пока). Но думаю нет никакой сложности проверять переменную на соответствие условиям и если надо то повторять предыдущий действия. Можно переходом к метке или сделать цикл который будет выполняться пока условие не выполниться.
Не актуально, в общем надо было просто разбить на сигменты.
Сначала ищу папки, а уже после этого по частям в папках файлы, так срабатывает и тупит куда меньше.
@kuzkuz учти, что эта разница нагрузки указана только относительно этого параметра, а не всего скрипта. Причина не только в нём может быть. Так сказать убрать галку с этого параметра - не панацея.