This is similar to the check in Reloadable, and fixes a number of hard
to debug issues with Process, IpcHandler, NotificationServer, and
GlobalShortcut not working depending on where you put them in a QML file.
On the post-reload reloadable initialzation path, a timer is used to
delay reload(). This change fixes a UAF when switching generations
while that timer is running.
onReload was called multiple times due to Reloadable::reloadRecursive
calling onReload instead of reload, which didn't set reloadComplete.
This allowed the componentComplete fallback to call reload later.