NodeMCU - Master and UNO - Slaves (I2C communication)

The latest version of the Wire library does include a timeout feature. If you do detect some sort of timeout, you can always do a Wire.begin() to reinitialize everything.