En este foro tienes un ejemplo en sus FAQ's para hacer descargas con opción "Resume" que es una de las cosas que te interesan para permitir "recordar" en que punto de una descarga se quedó el archivo:
http://www.forosdelweb.com/f18/faqs-php-530600-post306781/
El tema de validar si la descarga se ha hecho con exito o no .. no sé si podrás definirlo bien en PHP .. PHP por lo menos hasta la versión 4 (la 5 algo incorpora) no se puede ver los datos que este maneja de forma "raw" .. es decir control sobre lo que circula entre el "cliente y servidor" ...
El tema de proteger tus archivos (las rutas) en principio se trata de colocar tus archivos fuera del "document root" de tu servidor HTTP .. es decir .. para que no queden al alcance de una llamada tipo:
http://www.tal.tal/archivos .. En un servicio de hosting común ese "document root" apunta al "plublic_html" por ejemplo. Si tu tienes control sobre el servidor HTTP en Apache el "document root" lo tienes en tu httdp.conf
Cuando tengas tus archivos fuera del DocumentRoot .. tendrás que implementar scripts PHP que hagan lo que veras en las FAQ's referentes a gestioar las cabeceras HTTP que necesitas para inciar la descarga y leer el archivo vía sistema de archivos del servidor de donde esté fisicamente esos archivos.
Las validaciones que tengas que hacer las puedes implementar en ese mismo scirpt PHP pues todo ha de pasar por ese script "lanzador" para iniciar la descarga.
Otro tema aparte será si tanta cantidad de datos será factible hacerlo por "HTTP" .. te vendría mejor usar FTP con sus cuentas y que tus usuarios usen clientes de FTP comunes. Así controlas el acceso correctamente y gestionas mejor la descarga en sí.
Un saludo,
Un saludo,