If the I2C access fails on the DS3231, is there any way to recover it?
There is no I2C bus time-out feature in the DS3231. The standard 9 SCL clocks to finish whater commnd the DS3231 things it is executing should allow the DS3231 to release the bus. Power cycling the DS3231 will also reset the control of the I2C bus.