Wouldn't it be sensible to sort messages in a MidiMessageSequence so that note off events are ordered before note on events if the time stamp is equal? I ran accross several occassions where i could save some corner case handling if that would be a safe assumption. For example consider a sequence where the same note is played twice without a pause in between. On playback a MidiBuffer is filled with the appropriate events. Now if the note off is added after the note on event timing of the note will be wrong for most plugins.
If you are affraid of breaking existing implementations maybe you could add a MidiMessageSequence::sort() method that takes an ElementComparator as parameter?