Before, it was safe to assume that the `END_STREAM` frame for a given stream wouldn't be processed outside of `Stream._read()`. Now that we have `Stream.getpushes()` (with `capture_all=True`), that could happen - meaning that by the time `Stream._read()` is called, the stream is already closed.