Я подробно остановлюсь на ответе Лахлана Роша, который является правильным.
Платформа ASP.NET будет "однопоточными" запросами, относящимися к области действия Session (глобальный ресурс), для предотвращения вмешательства одного запроса в другой. В WebForms я думаю, что вы можете использовать директиву Page, чтобы указать, что отдельные страницы не используют Session и, следовательно, не должны обрабатываться синхронно, как это.
Проблема в том, что в ASP.NET MVC все запросы используют Session , потому что он используется для реализации TempData. Как указал Лахлан Роше, вы можете полностью отключить состояние сеанса или справляться с этим в каждом конкретном случае.
Возможным решением может быть запуск собственных фоновых потоков для обработки любого долго выполняющегося кода, чтобы первоначальный запрос "завершался" как можно быстрее.