Так не трогать Revit, обойтись системными средствами. Idling - тебе будет или процессор кушать, если SetRaiseWithoutDelay вызовешь, или же, наоборот, вызываться с непонятными интервалами, плюс есть ещё режимы, в которых она не работает. Например, в режиме создания или редактирования некоторых объектов, в режиме редактирования групп (вроде бы).
Я бы посмотрел в сторону WinAPI, там есть, например, SetWinEventHook для отслеживания событий. Отдельной программкой в автозагрузке или вообще сервисом Windows.