reader: goroutine safe max in flight

if you set max in flight after connecting (which launches the redistribute goroutine) it was possible for redistribution to fire because the update to the maxInFlight variable would not be visible to that goroutine cc @jehiah @domwong