Has the side effect of fixing clean up for readers cancelled while
waiting. Breaks the assumption that resolution of a writer `Deferred`
means that previous readers and writers have completed, which will be
fixed in the next commit.
Signed-off-by: Sean Quah <seanq@element.io>