Rigol DS1074 oscilloscope shows very wrong timing
Looks like a bug to me.
I reproduced it on my 1054z using an Arduino with an LED blinking program.
This is the signal with 12M memory depth acquired at 500ms timescale, and then expanded at 200 ms scale. The 'beat' is 1000 ms long. (Ok, technically it's 900ms long plus the overhead, but if I add the first part of the next train I get a nice 1000 ms sequence that makes numbers nicer.)

The one above is the result I get with AUTO memory settings as well. But if I set memory depth to 24M I get problems at the 500ms scale. As above, this is the signal aquired at 500ms timescale and then expanded to 200ms timescale:

Pulse length appears extended by 40 ms, that's the same 4ms every 100ms shown by the OP (he goes from 600ms to 624ms).
Acquisition at 200ms timescale shows the correct pulse length of 1000ms

But if I acquire at 500ms timescale, I get 1040 ms

Here's the Arduino Sketch, if anyone wants to replicate it.
/*
  doubleBlink
  Turns on and off an LED in a predetermined sequence, repeatedly.

  Most Arduinos have an on-board LED you can control. On the Uno and
  Leonardo, it is attached to digital pin 13. If you're unsure what
  pin the on-board LED is connected to on your Arduino model, check
  the documentation at http://www.arduino.cc

  This example code is in the public domain.

  modified 8 May 2014
  by Scott Fitzgerald
  modified 15 February 2016
  by Sredni Vashtar
 */


// the setup function runs once when you press reset or power the board
void setup() {
  // initialize digital pin 13 as an output.
  pinMode(13, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(100);              // wait for 0.1 second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(100);              // wait for 0.1 second
  digitalWrite(13, HIGH);   // turn the LED on (HIGH is the voltage level)
  delay(500);              // wait for 0.5 second
  digitalWrite(13, LOW);    // turn the LED off by making the voltage LOW
  delay(200);              // wait for 0.2 second
}

(I have to say it's been a while since I last updated my scope's firmware - I'm on 00.04.04.01.01 - but the bug has been confirmed othe latest version to date)
EDIT: Following mkeith advice, here is the 1kHz scope test signal, acquired at 500ms timescale and then expanded at 200us, when memory depth is set to 24M.

The period becomes 1.040 ms. Same 4% error. Acquisition at 200us directly will give the correct value of 1.000 ms.
And it gets better! If I acquire the test signal with a timebase of 5s, and then expand it to 200us, the period becomes 800 us!
That's a 20% error.

At other timebases (with the same stopped acquisition) I get the correct value. I would love to see how they do the rounding in Rigol.
Anyhwow, this bug is affecting the latest firmware version - as noted by the OP - and since the question has been closed, people interested might want to follow this thread on the EEVBlog forum.