AFAIK, если IIS имеет дескриптор DLL, вы не сможете заменить DLL.
Вы упомянули APPPool Recycle и IIS Restart ...
Iдумаю, вы, возможно, не использовали прикосновения к файлу web.config.Я имею в виду, откройте ваш web.config в блокноте, внесите изменения [например, добавьте пробел и удалите его] и сохраните файл.Это перезапустит домен вашего приложения и, следовательно, в идеале ссылка на сборку должна быть освобождена [если это не общая сборка].