>Проблема — если скрипт сработал и удалил файл в момент того, когда его кто-то скачивает, соединение оборвется с ошибкой.
Не оборвется так как в Linux файл будет обращаться через открытый дескриптор файла. Легко проверить, если поставить слушать файл и потом его удалить (речь про ext системы), так вот плеер будет спокойно играть дальше трек, и только при повторном обращении выдаст ошибку о том что файл не найден.