Что если вы разместили файлы на сервере lighttpd, на котором запущена программа modsecdownload, и использовали ваше приложение asp.net для создания безопасных URL-адресов для файлов на этом сервере?
Этот подход должен обрабатывать пункты 1,2 и 4.
Не уверен, как вы могли бы сказать со стороны сервера, что загрузка была успешно завершена, возможно, есть какая-то логика, которая анализирует журналы сервера?