Acquire a permit at priority, run block, then release — the priority analogue of kotlinx.coroutines.sync.withPermit. Higher priority is served first when the pool is contended; equal priorities keep FIFO order.
kotlinx.coroutines.sync.withPermit