В теорию глубоко не вникал, но механизм там примерно такой, по крайней мере в связке с веб сервером, например с Nginx.
В конфиге настраиваются как минимум три важных параметра.
1. Число постоянно работающих процессов (тредов) php-fpm
2. Максимальное число одновременно работающих процессов
3. Таймаут обработки запроса.
Каждый следующий запрос передается сервером свободному процессу с минимальным айди (не по кругу).
Если запущенного процесса нет и не достигнут лимит максимального числа процессов, то запускается новый процесс и ему передается пришедшийй запрос.
После окончания работы, процесс освобождается и какое то время остается "дежурить" в системе, оно тоже настраивается. Если не пришел новый запрос за это время, процесс умирает
Если все процессы заняты, то запрос не обрабатывается. Пользователь получает ошибку (код ответа HTTP)) 50x в зависимости от настроек. А Вы получаете в эррор лог ошибку о переполнении пула.
Кстати плохая ошибка, наличие которой лучше отслеживать...
Вышеперечисленные параметры действительно очень сильно влияют на производительность системы. Но вполне достаточно просто правильно рассчитать и задать эти параметры и все! Лезть глубже не нужно, это никак не ускорит работу системы. Работа с пулом там и так оптимизирована донельзя и создание нового процесса занимает микросекунды, потому там ничего не соберете...
Если уперлись в быстродействие, то начинайте с правильного кэширования.
Начиная с веб сервера, далее кеш сервер, обычно редис. (мемкешед почил в бозе...).
Далее трясем базу данных и работу с ней и т.д.
А вообще лучше практическую задачу обозначте, проще будет.