Razzwanтут важно понимать, что на самом деле делает sleep(). Многозадачный процессор должен выполнять множество программ одновременно, поскольку CPU (одно ядро) может выполнять в один момент времени только какую то одну, многозадачность реализуется распределнием рабочего времени между процессами, разбивая его на тайм слоты. В зависимости от приоритета длительость и количесво таймслотов у каждого процесса может быть различно. Всем этим хозяйством управляет ядро операционной системы. Кодга ты вызываешь sleep, интерпретатор сообщает ОС в течении n-го времни его не беспокоить, соответсвенно ОС в это время не выделяеет данному процессу ни одного таймслота. Ресурсы процессора при этом не расходуются, но процесс продолжает сидеть в ОЗУ, соотвенно на загруку памяти оно ни как ни влияет, ни в плюс, ни в минус, она загружен так же, как и без спячки. Если это консольный скрипт, то он работает каждый в своем процессе, и он особо ни на что ни влияет (хоть и пользы от этого то же нет), если скрипт работает в контексте модуля апача, то если используется mpm_prefork для обработки каждого tcp запроса запущен отдельный форк процесса, их число ограничено, вызывая в них sleep ты подвешиваешь подпроцесс на длительное время, в течении которого он мог бы обслуживать другие запросы. Выводы как бы очевидны