кстати, идея про ignore_user_abort() напомнила мне про такой прогресс "для бедных". работает через iframe, выводит каждый раз значение % прогресса, блок комментария на 2Кб (чтобы разные глупые браузеры, которые парсят вывод блоками выводили сразу) и JS в пару строк, который скролит контент вниз, к текущему проценту.
п.с. не помню, как правильно писать этот JS, то ли просто ставя запредельный скролл, то ли ставя якоря и меняя location.href. Нюанс в том, что дерево DOM будет в тот момент еще не полностью сформировано и не любой код прокатит.