changes to mqs:
- gating wasn't doing anything because we were already restricted by the number
of threads. additionally this prevented queue/gate acquisition metrics from working
correctly. Gating using the semaphore is now gone along with some related code, but
a correctly functioning metric for how long a query had to wait before running is now
in place