Treating time as just a number is the move. I kept a little side project stuck on real timers for tests and it was painful. Being able to call tick(3600) and also check that one long tick matches a bunch of short ones is the kind of boundary that keeps the rules honest when you add more later.