I recently tried both Streamdeck and Metagrid and was having inconsistent expression map triggers. The note ons were immediate, but it turns out that not having a short delay and note off after was causing the issue.
So, if you are using loopmidi, or any software to trigger keyswitches instead of actual keyboards, try adding both a short duration of 20-50ms after the note on, and then a note off of the same note.
In metagrid this worked by adding and empty text in between them with a macro which added a delay that worked, which was better than the current delay which is limited to 100ms at the lowest.
Sharing for future google searches on how to solve any seemingly unreliable keyswitching with Expression maps where they don’t always trigger correctly.
Not Cubase’s fault, it’s something about how it requires the delay and note off like a normal keybed would trigger I guess or that messages too fast don’t register.