Here is a log with delay (In this test my button is near many objects, and the camera is turned in a direction that draws many of them):
PastebinIt actually revealed one very interesting point--that there are many more CanUseItem events being handled than CharacterItemEvents. In fact, many CanUseItem handlings are not followed by any "UsedItem" events whatsoever. I gathered that these were all of my clicks that were "missed" so I tested with a PROC hook out of _CRIME_CrimeTriggers' ProcProcessUseOfItem(); right after the RequestProcessed() call.
The result was that the button
did play the effect more regularly, but clicks were still missed. Also, in-game, the button was still delayed (and many clicks missed), even in areas with almost no objects nearby. This suggests that "missed" clicks are not firing a CanUseItem event at all.
Here is a log with almost no delay (In this test my button is near many objects, but the camera is turned in a direction that does
not draw many of them):
PastebinIn this case, it seems that every CanUseItem event is followed by the family of "UsedItem" events, as well as the CharacterItemEvent.