Separate check from thread queueing.

Reasons:
- faster execution but greater variance from upper bound.