It would be nice if Revit IExtenralEvent.Raise method had another variant like:
bool IExternalEvent.RaiseImmediate();
which would return true if it was able to raise the event and false otherwise. That way plugins can make accurate and immediate decisions as to what information to present to the user.
(from @Anonymous in this thread)