channel: Add some preconditions around API requests

It's possible for apps to attempt to call into channels after the
connection has closed; we should demote this to a precondition
failure.