E infatti hai ragione... ho detto una cavolata. Ho realizzato un sistema simile (senza il controllo dell'avvenuto download) in Ajax tempo fa e sono andato un attimo nel pallone...
Ho anche realizzato un sistema per l'upload di grossi file, con Java Web Start (e Zend Framework) che andava abbastanza bene (spezzettava i file i tanti pacchettini su cui veniva fatto un controllo di coerenza, e l'upload poteva anche essere interrotto e ripreso in un secondo momento), magari puoi fare qualcosa di simile... l'unica pecca è sempre l'interprete Java e l'avviso di sicurezza che viene visualizzato dagli utenti.
L'unica alternativa a java è flash (che è addirittura più diffuso di java anche se andrà via via a morire).