Does the delay need to be adjusted for the actual execution time?  With setInterval, we were guaranteed that the pulse would be scheduled for each delay, where when using setTimeout, if the callback's execution is delayed, we may need a smaller actual delay to get the same timing.