Ответ 1
PHP обычно завершает выполнение script, когда он понимает, что соединение закрыто:
PHP не обнаружит, что пользователь прервал соединение до тех пор, пока делается попытка отправить информацию клиенту. Просто используя echo statement не гарантирует отправку информации, см. заподлицо().
Вы можете сохранить ваш script с помощью ignore_user_abort().
Кроме того, существует ограничение по умолчанию для сценариев, которым разрешено запускать. Вы можете переопределить это, используя set_time_limit().