Yep -- if you remove the input element on keydown then my event still gets triggered with the current code.

What do you think of this?

    if (document.getElementById(abstractTargetID)) {
      EventPluginHub.enqueueAbstractEvents(abstractEvent);
      EventPluginHub.processAbstractEventQueue();
    } else {
      // Don't send the event if the element has been detached
      AbstractEvent.release(abstractEvent);
    }

Feels sort of hacky but it seems to work (for the node removal case, at least) and I think it's better than not doing the check.