Accurate timing while using timeScale.

I have an entity moving between multiple waypoints using iTween. I would like to use timeScale to speed up/slow down the global time. I have a timer that increments based on deltaTime (timer += Time.deltaTime). When I run at timeScale 1 the entity gets to the waypoints at a certain time. When I change the timeScale the entity does not reach the waypoints at the same time. For example at timeScale 1 my entity reaches the waypoint in 1 min. At timescale 20 it reaches at 1min and 15 seconds. Is there a more accurate way of keeping track of time if I need to speed up the game play.

startTime = Time.time;

timer = Time.time - startTime;

is always better to use than

timer = 0;
timer += Time.deltaTime;