evbuffer_read 8 bytes (fd 508)
.. got 0 bytes
yield

Hmm, I believe in this case it is actually waiting on a read for 8 bytes, so maybe what's going wrong is it's resuming the task and instead of throwing an exception or whatever it used to do when disconnected, it's just spinning/yielding some more in the read() even though the remote hung up?