а как реализуется очередь - это что такое в вашей реализации?
В текущей реализации, если очередь 100к - то это 100к вызовов Acquire , а внутри Acquire есть код
select {
case <-ctx.Done():
case <-ready:
}
те если контекст истечет, то сразу семафор освободится с err