Handling and parsing large CSV files

It looks like you are falling behind on your playback. The first two records below were read 80 milliseconds apart but the motion was supposed to be done in 50 milliseconds. After a few such, you will fall further and further behind.

I recommend you reduce the amount of text logging by not labeling each line and using one line per report:

  Serial.print((millis()-starttime));
  Serial.print(',');
  Serial.print(Record.timempu);
  Serial.print(',');
  Serial.println((Record.timempu)-(millis()-starttime));