defend against event cleanup race condition