Объяснение
Goroutine не завершится автоматически вместе с HTTP-запросом. Context передаёт отмену и deadline. Отправка в канал блокируется, если нет получателя или свободного буфера.
Задача для самостоятельного решения
Как не оставить worker навсегда на отправке результата?
Показать разбор ответа
Выполнить select между отправкой и ctx.Done(). Владелец жизненного цикла также должен отменять context и дожидаться завершения workers.