fork из pcntl_fork так же нестабилен как и обычный Сишный форк. Ни больше ни меньше.
В дочерних процессах контролируем падение по любой ошибке, в том числе ошибке интерпретатора, корректно завершаем процесс с кодом возврата.
Код возврата анализируем в родительском процессе, чтобы определить сдох хомяк естественной смертью или его порвало от капли никотина.
Можно использовать ум предшественников и воспользоваться готовыми решениями:
phpdaemon.net/
При должной сноровке и отсутствии боязни пересборки php эта штука не только будет префоркать нужное количество воркеров, но и делать горячую замену кода прямо во время выполнения.
Или
nanoserv.si.kz/ — чуть проще, понятней для начала, но для 70% задач и его хватит с головой