Когда IIS Web App завершает работу (например, из-за отсутствия новых запросов HTTP (S) на время ожидания), домен приложения .NET (в рамках рабочего процесса пула приложений) полностью закрывается и выгружается. Это включает в себя все фоновые потоки, включая те, которые используются пулом потоков .NET.
Веб-приложение можно настроить с более длительным (или отсутствующим) тайм-аутом, тогда фоновые рабочие потоки могут продолжать обрабатывать работу.
Но лучше было бы запускать таких работников в специализированном сервисном процессе, управляемом совершенно отдельно.
Или, что еще лучше, используйте хостинг приложений IIS с WCF для создания прослушивателя MSMQ. Я понимаю, что в этом случае интеграция служб активации процессов Windows с IIS перезапустит веб-приложение, если новое сообщение будет получено после его закрытия.