Flashing new firmware to production devices

So…would it make sense to merely sit in a loop (with/without delays) until System.updatesPending() no longer returns TRUE? By that I mean, if it did return TRUE after 10 seconds, then wait until it no longer returns TRUE? The assumption being that it has received the desired updated.

Is it safe to assume the device will automatically restart after the download is completed?