e2e: return EAGAIN if we do not return an event

Also, don't replace the return value if a later call fails
tests: use break instead of continue to return bye

Also, set event = NULL to avoid reusing stale event