quick-provision: Await reboot before doing post check.

Quick provisioning path was erroneously expecting PostCheckCrOSUpdate
to await for reboot, while in the non-quick provisioning cases this was
being done prior to that call.  This resulted in some race conditions
and a few attempts to work around it incorrectly.  Now, quick
provisioning can just call AwaitReboot which will ensure that the DUT
has rebooted before doing any other provisioning.

BUG=chromium:812949
TEST=autotest/contrib/loadtest.py
CQ-DEPEND=932362

Change-Id: I93e680d92c8fb7e99008dc3783c10b7af620707a
Reviewed-on: https://chromium-review.googlesource.com/931937
Commit-Ready: David Riley <davidriley@chromium.org>
Tested-by: David Riley <davidriley@chromium.org>
Reviewed-by: Xixuan Wu <xixuan@chromium.org>
diff --git a/cros_update.py b/cros_update.py
index 49acfef..c1ec878 100644
--- a/cros_update.py
+++ b/cros_update.py
@@ -289,12 +289,15 @@
             self._WriteAUStatus('Start Quick Provision')
             keyvals = self._QuickProvision(device)
             logging.debug('Start CrOS check process...')
+            self._WriteAUStatus('Finish Quick Provision, reboot')
+            chromeos_AU.AwaitReboot(keyvals.get('BOOT_ID'))
             self._WriteAUStatus('Finish Quick Provision, post-check')
-            chromeos_AU.PostCheckCrOSUpdate(keyvals.get('BOOT_ID'))
+            chromeos_AU.PostCheckCrOSUpdate()
             self._WriteAUStatus(cros_update_progress.FINISHED)
             invoke_autoupdate = False
           except (cros_build_lib.RunCommandError,
-                  remote_access.SSHConnectionError) as e:
+                  remote_access.SSHConnectionError,
+                  auto_updater.RebootVerificationError) as e:
             logging.warning('Error during quick provision, falling back: %s', e)
             time.sleep(QUICK_PROVISION_FAILURE_DELAY_SEC)