If communication times out or a NAK is received, this is now recognized and sensor values are flagged as invalid. The communication then restarts on the next regular cycle. This is still to be tested.
This removes any busy waiting on the I²C from the main loop. Initialization is still done in a blocking way.