Если прогресс реально очень долгий, можно запускать второй процесс, который бы опрашивал текущий статус обработки. Пример такой реализации был на хабре
https://habrahabr.ru/post/153731/ . Там демо не работает, вот демо по этой же идее:
www.plus2net.com/php_tutorial/progress-bar2-demo.php
Ну и где-то видел заминусованный вариант, где аякс выдавал дивы-полосочки общего прогресса и флашил их. Вот, нашёл:
stackoverflow.com/questions/20453015/progress-bar-... Дурная, но идея.