I've always thought of the chords as being changed on the next bar ... but the bass note is "pushed" at the end of the previous bar. So, for example (and this is not a great example) if you are switching from CM7 to Dm I would play a D bass note at the end of the "C" bar ... the point to play the note is "probably" around a 1/32 before the bar end. And, the note should hold into the next bar. All we're really doing is to make life tough for the bass player here, making him think about what's going to happen
I think that if you are going to try to anticipate when and what the next chord is going to be based on some "logic" you're going to have trouble
Heck, even composers change their minds in the middle of pieces on this.
As to when to do in the conversion: I think you should do it as part of the MusicXML->MMA process. After all, if the XML source it accurate it will already have done the compensation, won't it?