Made the AsyncEvent invoke itself from a sync context, rather than an async one.  Hopefully this doesn't force things to be sync.