Reject on close

When a connection is closed (if that state is detectable), reject all unresolved promises with a Connection closed error, so downstream promises have an opportunity to recover.