Я думаю, что производительность - это главная проблема. Во всех режимах, кроме режима InProc, есть несколько веб-серверов, отвечающих на запросы, и 1 сервер (возможно, кластеризованный SQL), обрабатывающий состояние.
Теперь, кто будет отвечать за тайм-аут? Это должен был быть государственный сервер, но мы хотим обременять этот сервер как можно меньше. И это потребовало бы, чтобы сервер состояний передавал данные на (случайный) веб-сервер, для всего остального, что он опрашивается. Я сомневаюсь, что в настоящее время сервер состояний даже хранит список веб-серверов, им это не нужно. Итак, просто для события SeesionEnd необходимо добавить сложную систему для администрирования мониторинга WebServers.
Добавьте к этому сложность отслеживания того, действительно ли выбранный сервер завершил событие, и все это становится очень непривлекательным.