Don't call _cycle_timer.elapsed() unless timer is running.

We're depending on the value returned being 0 until the timer is
started. This code will work as intended, but it makes debugging
places where elapsed() is unintentionally called before start()
more difficult so I've added and isRunning() call.