Does clock speed matter when recovering from I2C bus lock up?
It seems your problem is that some IIC bus slave is holding SDA low when it shouldn't.

Your solution is to give the slave clock pulses until it finally lets go of SDA.  These are ordinary clocks from the slave's point of view.  You can use whatever clock speed the bus and that slave can support.

As soon as the slave releases SDA, do a bus start to reset the message decoding logic of all slaves.

Something bad happened to get into this mess in the first place.  Either the slave is buggy or there were data or clock errors on the bus so that the slave received something the master didn't send.  Both are serious problems.  If the latter, you probably have noise on the bus and/or are trying to run it too fast for the pullups and capacitance on the bus.