Sorry - only noticed this question today — blocking NoteOns while allowing NoteOff events is a totally reasonable way to do it. What makes you think it’s not clean? Because lots of extra NoteOff events get sent to a plugin without previous NoteOn events? If so, so what? It works!
Perfect is the enemy of good enough!
(By the way, this was already discussed here)