reader: avoid recursive RLocks

* use a more granular lock on q.maxInFlight to avoid recursion
* use a more granular lock around connections
* don't hold RLock over q.ConnectionMaxInFlight
reader: refactor random 'test water' conn. block

avoid holding RLock over q.updateRDY