I use I2C extensively on a Pi 4B on our little boat. To do all the I2C stuff I use the smbus package (the standard python3-smbus that is).
Currently I have a 120 second delay after booting the system before actually using the I2C bus, I can't quite remember when I did this or quite why it's so long. It's likely much longer than necessary as this was originally implemented on a much older Pi than the current 4B.
So, the best way to reduce the delay would be to have some definite way of telling if the SMBus/I2C is up and running. Does anyone know how one might do this? Alternatively does anyone here use smbus on a Pi 4B with a much shorter delay?