What do these Animation objects in Outliner represent?
Blender records animation data into an action. Each object can have one active action which receives the keyframes when you use insert keyframe for a property or group of properties like LocRotScale when inserting keyframes in the 3DView.

When the dopesheet is in the Action Editor mode, the active action is visible and this action name is the first item visible under Animation in the outliner. You can change the active action and create more actions here.

While only one action can be active, which is the one being edited, we can create multiple actions for each object and use the NLA Editor to merge them into a larger animation. The tracks and actions added to the NLA Editor are then listed below the active action in the outliner. The combination of actions in the NLA is what you see in the 3D viewport. Note that actions can be muted in the NLA as well as individual channels in the dopesheet and graph editor, also the active action may not exist in the NLA but will be added to the animation in the viewport.



It's isn't too hard to get mixed up when using the NLA. Let's say you create an action that contains animation from frame 1 to 20. When you place the action in the NLA you can re-position it so that it plays from 50 to 70. If you then re-select the action so it is the active action again, as the active action it will play back from frames 1 to 20 and will not play from frame 50 as set in the NLA. This would be the cause of the out of sync animation while exporting. To fix this, select your mesh and remove the active action from the action editor.

With just a quick look at the export_x script, it changes the frame and exports the location/rotation as read from each object at that frame, this should match what you see in the 3D viewport when playing the animation.

I would expect the best results will be achieved if you remove the active action and only use NLA when exporting.