Toc, toc, se puede?... no soy experto, pero me interesa ver la solucion al problema, espero que no te moleste si me siento aqui a esperar.
P.D. Has probado con
readfile() en vez de fopen() + fread()?, ya probaste tambien si puedes descargar el archivo directamente (peticion http sin el script)?