Буферизованный канал ограничивает число задач внутри себя. На горутины, которые застряли на отправке, это ограничение не распространяется.
Пусть на сервер разом приходит 100 запросов, в каждом по одной задаче. Воркеров четыре, в канале восемь мест. Пока идёт всплеск, ничего не завершается. Четыре задачи выполняются, восемь лежат в буфере. Если каждый запрос уже запустил горутину для отправки, остальные 88 стоят на этой отправке. У очереди предел есть. У толпы перед ней его нет.
Перенос отправки в ещё одну горутину лишь переносит ожидание. Небуферизованный канал заставляет отправителя и получателя встретиться при обмене, но число пришедших отправителей он не ограничивает.
Допуск делается на входе запроса. Сначала занять место, потом запускать работу, а если места нет, сразу вернуть отказ по перегрузке. Если же допуск будет ждать, этому ожиданию нужны свой предел численности и срок. Иначе очередь просто переехала выше по потоку.
Когда вызывающий уходит, обработчик подаёт сигнал отмены, а воркеры проверяют его перед стартом задачи из очереди и в удобных точках остановки. Место сигнал при этом не освобождает. Задача считается, пока реально не перестала занимать ограниченный ресурс.
Для фиксированной пачки из двенадцати мелких задач проще сразу запустить двенадцать горутин. При таком ограниченном входе пул может и не окупиться.