Это действительно не имеет ничего общего с блокировкой; это так, но это не так. 20-секундный запрос блокирует один поток, поэтому для следующего запроса используется другой. В то время как с быстрыми запросами потоки в основном циклические.
Тем не менее, это действительно не должно пикировать производительность вашего процессора. Веб-серверы имеют верхний предел «рабочих», которые порождаются, и когда они все связаны, они все связаны. Он не будет превышать лимит, поэтому, если вы не установили его или значение по умолчанию не превышает установленного значения, которое у вас есть, оно не должно нагружать ваш ЦП так высоко.
Несмотря ни на что, все это просто информационное и не решает вашу проблему. Однако с таким длительным запросом вы должны как можно быстрее разгрузить его со своего веб-сервера. Веб-сервер должен просто передать запрос другому процессу, который может асинхронно обработать его, а затем использовать опрос, чтобы уведомить клиента о готовности ответа. Node.js часто используется в подобных сценариях, но у меня действительно нет достаточного опыта, чтобы дать вам какое-либо реальное руководство помимо этого.