use the batch semaphore in addition to also limit dynamically on # of requests per batch