more specifically, the channel's lock currently protects `inFlightMessages`, but it probably should be `channel.inFlightMutex` - I don't want to change that in this PR though.