Well, that could work if you add block/clone modules along the way.
However, would it not be easier just to allocate each note to a specific channel in the one script in the order they were sounded? In that case the script is relatively simple and doesn't need all that timer shenanigans to figure out the lowest note each time.
If you know the note events appear in the order that they should be allocated then this would be more efficient (and no latency).
i have tested your script. It works perfectly. Thank you for this, i would promote it in other forums when people try to do the same kind of thing 😀.
Regarding the original script, i have tried to chain two modules: i still think that the first solution would allow more powerful control over which channel is played depending on the note pitch. But chaining does not work: from what i have seen by putting a monitor, the first module looks to work correctly, but the second one in the chain does not looks to send sysex. Do you have an idea why second sysex is not sent ?