Don't allow sending requests on a channel that has errors

As a result of a recent change that fixes the ordering of closing the channel and calling the error callbacks for any active requests, there could be cases where a callback for a request failure tries to retry the request on the same channel. We should fail such requests immediately, because the channel is about to be closed anyway.
Cleanup/clarify client channel exception handling code