Hi, the ELSE library has [else/
note.in] and [else/note.out] which can handle proper note off messages. There's an object in cyclone (and also in MAX, of course) that can do that too, called [cyclone/xnotein] and [cyclone/xnoteout].
The use case of this is very rare as modern controllers don't really send note off messages anymore. I bought an old controller from the 80s that can do this, cause I'm a nerd and gear slut.
Note Off messages start with channel messages from 128 to 143 (128 being channel 1 up to 143 being channel 16) as Dan's test patch points out. You can use raw midi input from vanilla to listen to this and get the next two values which are MIDI note and release velocity.
I would also like this to be available in vanilla, but, hey, well, there are the mentioned externals already and this is quite rare as I pointed out. If you need to do it as a pure vanilla application for whatever reason, you can create such abstraction with [midiin].
cheers