The actual ODR may be different with respect to the programmed nominal ODR.
Even if you select 104Hz, the actual frequency can go from 94 to 114Hz.
For maximum accuracy, one should measure the actual ODR by using an accurate timer on the microcontroller or at least at startup counting the number of samples generated in a given interval (how many times data ready flag is asserted in 10 seconds for example) and then using this value.
The ODR is important because the time interval between samples is utilized for gyroscope integration by MotionFX.
Also, for the mag it is important to verify if calibration has been completed successfully (cal quality output). If not, the yaw/heading output will not be absolute values, but relative values meaning that only the change is tracked using gyro integration.
Assuming your 360 degree rotation is around the vertical axis, and therefore related to yaw/heading output there is one more consideration to be done.
Finally, MotionFX is optimized for gaming controllers: when device is static, it is guaranteed that the output is constant and does not drift, even if there is a discrepancy between what the mag says and what the integrated gyro says. If this is the case, one can tune the knobs to give more trust the acc and mag, and less trust to gyro - the output will be less accurate during high dynamic motion, but the discrepancy will be smaller at the end of the motion.
In order to get accurate yaw/heading angles, one should use MotionEC (eCompass) instead.