Das kann schon sein, dass das Script vorher beendet wird, gerade bei grossen Dateien. Das Problem ist ja, dass die Datei zum Download angeboten werden und gleichzeitig schon gelöscht sein soll.
Probiere mal folgendes:
Füge
remove_tmp_folder(DOWNLOAD_TMP_PATH);
vor
$file = array();
ein
Jan