По факту, никак. Решилось все балансировкой запросов, когда мы не посылаем новый запрос, пока не уверены (почти, за счет избыточного таймаута), что предыдущий не отработал и окно не закрылось, как и процесс не завершился.
При этом тут стоит понимать, что если мы посылаем к Селениуму запрос например для перехода на некий url (webdriver->get(url)), то Селениум ждет, когда это реально случится, и потом только нам возвращается управление (конечно, можно и асинхронно это попытаться сделать, но php-либа от ФБ это делает именно так). А вот когда мы посылаем запрос драйверу на закрытие (не помню как точно уже звучит, типа close() или quit(), наверное), то никакого ожидания мы не получаем, запрос улетает к вебдрайверу, и тот посылает запрос на закрытие браузеру, и соответственно при большой нагрузке на машину у нас этот запрос уже якобы отработал, но в реальности еще только закрывается окно браузера, а потом и тушатся его процесс(ы). И этот временной лаг может достигать десятков секунд.