For performance reasons, our client was doing the following for a large insert: a constraint was being removed, insert the data, then constraint added again.
On recovery, these steps were being repeated many times when replaying the transaction log. The startup was taking over 11 minutes on a small CPU. We are changing the client to not need the constraint and therefore not add and remove it. Now, the recovery time is much better.
But, I'm still looking at ways (h2 options or best practices) to keep the recovery time as low as possible after power failure