message: fix(api): fix cancelling during the pre-protocol home
  If you cancelled when the robot was homing before the protocol, it wouldn't
  actually cancel the protocol itself because it wasn't using the right hardware
  backend sometimes.
  This makes it correctly cancel when cancelled before the protocol.
diff: @@ -488,9 +488,9 @@ class Session(object):
  self.set_state('running')
  try:
  + if self._use_v2:
  self.resume()
  self._pre_run_hooks()
  - if self._use_v2:
  self._hardware.cache_instruments()
  ctx = ProtocolContext.build_using(
  self._protocol,
  @@ -510,6 +510,8 @@ class Session(object):
  'Internal error: v1 should only be used for python'
  if not robot.is_connected():
  robot.connect()
  + self.resume()
  + self._pre_run_hooks()
  robot.cache_instrument_models()
  robot.discover_modules()
  exec(self._protocol.contents, {})
  