Я не думаю, что эта проблема вообще-то связана с SessionState.Каждый браузер делает только ограниченное количество одновременных запросов к домену - подробности см. в этой статье .
Я думаю, что проблема вызвана тем фактом, что если вы запустите несколько запросов «SetACallWaiting», вы столкнетесь с ситуацией, когда браузер даже не отправит запрос на сервер, пока предыдущие запросы не будут оставлены без ответа -поэтому запрос "ReleaseEveryone" не отправляется браузером.Следовательно, вы получаете поведение блокировки.
Также может быть проблема с размещенным вами примером кода - «SetCallWaiting (1000);»строка в функции ShowResult.С этим вызовом вы фактически не уменьшите количество ожидающих запросов, так как каждый раз, когда запрос освобождается, он будет заново создаваться (я не уверен, что вы этого хотели или нет).
Чтобы проверить это поведение, посмотрите на запросы, отправляемые браузером, и установите точки останова в действиях контроллера, и посмотрите, как он ведет себя для различных типов запросов.