I'm facing with the exact same problem. Could you please describe in more detail, how to compensate this offset? I believe it will not work, if I simply measure it by hand for each axis and then substract it from the output values, because it seems to be correlated somehow to the orientation of the device. Could you please specify the algorithm?
I'm suggest the following two method:
1. perform the fast offset calibration in sensor level and store the offset value into sensor NVM.
2. since pure linear movement is not quite easy to achieve in real world, we can use gyro output as further compensate. If gyro output is 0, then we can also do offset compensate for linear acc.
But if your use case is able to get pure linear movement, then item 2 is not feasible any more.