Make ChannelImpl.state volatile

It is potentially read from any thread in pre-send checks triggering client messages
Add some more test for channel name validation