history_size=7 costs a lot of memory but it's the difference between a useful second stack and "goroutine created at some point, good luck".
That's exactly it. My consumer returns on <-ctx.Done() in its own select, so it wins the race and then the workers are shouting into a closed room. Wrapping the send fixed it in 200 consecutive runs.