Fix ESP32 digital IO issue, fix I2c locking issue under heavy load
- Many thanks to @kimble4 for finding and reporting the ESP32 digital IO problem when extra mode was not enabled.
- I2C locking was wrongly structured and could deadlock under heavy use with many I2C actors in task manager.
Tested on AVR, MKR, ESP8266, ESP32, Nano33BLE, mbed-STM32F4. We'll continue testing tomorrow, and if we find anything else, we'll issue another patch. However, this should fix the situation for most users.