This issue still exists when using host MIDI I/O, i.e., every message is sent twice. Likely a bug.
2 workarounds:
1. As Possemo mentioned, using virtual MIDI ports and turning off host MIDI I/O. Sadly, this won’t work correctly if using Expert Sleepers’ MIDI outputs, which require the the MIDI data to be routed inside the DAW to be sample accurate.
2. Custom plugin that removes duplicate consecutive MIDI messages after CTRLR output. Seems like a waste of resources to process everything, but it does work. I have one written in Reaper JSFX if anyone is interested. The doubling of messages always occurs consecutively as far as I can tell, but it might not work if using several different multi message output modulators.
Any other workarounds possible with Lua scripting in CTRLR?