If I understand the info you posted, your setup behaves similar to mine. Around 9 minutes to do a repair. If the repair has any errors run it again until no errors.
So the question, while 9 minutes a repair is great, less than the hour the math suggests.
Can the zwave repair be modified to…
Suppose instead that the repair took twice as long, 18 minutes, but logic is to wait until all devices have no errors.
And the logs could report status as it goes,
Example log messages
all devices contacted successfully
Devices still updating neighbors
5 devices still updating neighbors
4 devices still updating neighbors
All devices updated
Zwave repair done, no errors