The timing for the XMI files in foo_midi should be spot on now, the only problem would be that they're designed for Adlib playback with custom instrument sets.
The same trick goes for .mid(a), .s3m(a), and .msc(a). Although, some day, I'll probably incorporate a passable (possibly tandem) AdLib emulation based MIDI driver into foo_midi, just for kicks. It will also support multiple loadable instrument banks, such as the widely used Fat Man set, featured in such games as Hocus Pocus, and included in the MSOPL driver.
The current design of AdPlug doesn't really afford me the loop start offset or loop length. It only reports when a track has looped once, and doesn't report where it has looped to.