The issue has been brought up before, and I vaguely remember that I saw some other implementation had added a parameter, something like "--seconds 2" if you wanted 2 extra seconds of rendering after the song has ended. Maybe that would be a reasonable workaround.
Yeah, there is a lot of ugliness involved which suggests that this isn't really FluidSynth's problem (after my patch is accepted, which *is* a FS bug). If a file has an EOT exactly on the final note-off, then it's the file's fault.
Another "what about" question is: what if this isn't the last song? (either we are looping, or the playlist contains more songs) -- then it shouldn't wait until the notes die out, because typically it will be timed to begin the next loop before all the notes die out (in fact, that is one really good reason to use MIDI in this day and age -- you can loop without the ugly pause of the notes fading out).
So perhaps patches need to be sent to Rosegarden (for example) to fix this issue in the MIDI file, rather than the synthesiser. Still, that --seconds 2 patch might be helpful (e.g., I could put that in my Makefile that I use to generate WAV files from MIDI). Do you have any idea how I might track down that patch?