Currently API adheres to "one outstanding send operation" policy unconditionally. This is both restrictive for implementations and inconvenient for API users. Specify it's up to an implementation to decide a policy for an incomplete (outstanding) operations behaviour. For example, it might block after some number of messages has been enqueued, but not yet sent. Or it might throw an exception if there's even a single incomplete write. It might allow unbounded queueing, etc. [Provide unbounded queue for default implementation.]