reader: more granular connection locks

this is related to #29, just continues
the work to minimize the lock surface