applyDelay(delayMs) {
    if (this.timeout && delayMs > this.timeout) {
      debug('socket timeout')
      this.emit('timeout')
    }
  }
Artificial delay that will trip socket timeouts when appropriate.

Doesn't actually wait for time to pass.
Timeout events don't necessarily end the request.
While many clients choose to abort the request upon a timeout, Node itself does not.