NO se si entendi bien.
Eso que haces no es un metodo seguro...
¿Quién te garantiza que el archivo se ha terminado de descargar en menos de 3s?
El tiempo de descarga depende de muchos factores.
Deberia ser con javascript quien detecte que el usuario ha descargado el fichero, mediante AJAX y le mande al servidor la señal de que se descargo para que lo borre.
Pero si te digo la verdad, nunca tuve que hacer nada parecido, pero buscando encontre esto:
http://stackoverflow.com/questions/1...-file-download http://gruffcode.com/2010/10/28/dete...n-the-browser/
Espero que te sirva.