stream: allow async read/write callback to destroy the stream explicitly