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.