So the problem is the status message format and the command message format are incompatible.
Status is 90 13 00/7F where command is repeated 90 13 7F
One way is to split the command button and status indicator. Status button would be no touch in play mode.
Another is to use StreamByter to trap any of the 90 13 00s and convert to 90 13 7F.
BUT - appears StreamByter seems to dislike the Note On / Note On message, and changes all zero velocity Note Ons to Note Offs. Was what was causing me problems this morning.
In other words, SB converts all 9x xx 00 messages to 8x xx 00 messages before processing.
Once I got this figured out, solution is straight forward.
In the above case, we need the one line of SB 1 code
80 13 00 = 90 13 7F
(Seems the code should be 90 13 00 = 90 13 7F, except as soon as SB sees the On/On message, it converts it to the 80 xx 00 On/Off format)
The downside is that ALL zero velocity note ons in the output stream now get converted to note offs, just by going through the SB code.
This line converts all note offs back to zero velocity note ons
80 XX 00 = 90 XX 00
If you have a mix, you may have to add more code to specify which remain On/On vs On/Off.
To convert all On/Ons to the toggle format, use
8x xx 00 = 9x xx 7F
Caution - don't ever use this last conversion in a layout processing "real" note data, as you are going to end up with a ridiculous number of stuck notes. Prolly safer to just target the specific cases you need for MCU control.
(Somewhere lost in my memory seems there might be a configuration setting for SB that controls this On / On behaviour, but sure cannot find it in the SB documentation or Audeonic Soapbox. Or maybe Nic just didn't like Hash House Harriers)