Maybe an option to set for example that 10 seconds before a song ends, the app will send any midi command that is scheduled to be sent on the next song when it becomes active.
So for example you have the following command on song B:
[midi: PC1@1]
This will normally be sent when the player loads that song.
With the above option it would be sent two times: first it will be sent 10 seconds before song A ends (assuming song B is the next song) and once again the song loads.
If it is ok that this command is sent two time, this solution might work. If ST3 needs to ensure that this command is sent only once, then things get complicated and I'm not sure there will be a straight forward way to implement it.