La soluzione migliore è gestire la cosa in modo asincrono.

Uno script si occupa di eseguire il download in background e scrivere lo stato di avanzamento da qualche parte. Un'altro script si occupa di visualizzarlo.