And the decoder has no way of knowing if the two tracks were meant to be played gapless or not.

This should be easy to solve (if you have the source for the decoder). Use two id3v2 tags - one to uniquely identify the file, another to specify the file that should be played gapless before (or after) this one. Then you just have to tag the pieces properly after you split the big mp3 file.

Borislav