запускать в отдельном процессе, при необходимости килл процесс. Днями тут пробегал такой вопрос, как получить пид процесса для килл, вроде и решение есть.
Не понятно что за "возникает потребность"? Или он долго работает(дольше чем хочется) и тогда нахрена выключать таймаут скрипта, или вы хотите чтобы он типа работает, и "ой, чет долго, СТОП МАШИНА!" и он раз и остановился. Так не канает, поезд заголовок уже ушел.
Если в основном потоке - проверять в цикле переменную, которую можно менять извне, например сессионную переменную, или из файла, в который что-то записать, или из хранилища, например редис или дб. Напрямую из текущего вывода первать имхо не получится, т.к. все хеадеры со стороны клиента уже отработали, мы тупо ждем результата от скрипта.