function setTimeout(fn, ms) {
  if (typeof fn !== 'function') {
    throw new Error('Fn must not be null and must be a function');
  }
  return goog.global.setTimeout(function() {
    onStartExecution();
    try {
      fn();
    } finally {
      onEndExecution();
    }
  }, ms);
}
Wrapper around SafeTimeout which calls the start and end execution hooks
with a try...finally block.
@param {Function} fn The callback function.
@param {number} ms The time in MS for the timer.
@return {number} The ID of the timer.