A short addition on this topic from my side. That a database migration runs longer than an hour has just been the case in one instance, that the ivy-core team is aware of. Other migrators finish this step usually in a few minutes.
Looking closer on the specific database conversion from 7.3 to 9.1, it looks to me as if mainly the amount of Tasks/Cases in the history plus the count of users that can work with tasks influence the conversion time.
However, I can second, that if short maintenance time frames are very important, then this conversion should be simulated with a clone of the real-dataset in a test environment. This provides the required statistics, to estimate how long the real migration will take.