Probably should have done this before the knobs pcb - just wanted to check the tiny88 programming and i2c before committing to a proper bit. Anyway, good job I did because I'd mixed MOSI & MISO! I made a cable that swapped the lines and then managed to upload some blinky firmware.
Some very basic proof of concept software is here: https://github.com/mattvenn/modbox
When the button is pressed a message is sent via mqtt to a python server. This sends the message to turn the led off.
The scope trace shows when a button is pressed (blue line). Yellow is i2c clock, which stops when the esp8266 sends the update. The purple line is the led, after quite a few presses, this was the longest latency, about 30ms. It feels fine, I needed the scope to quantify it.
I'm don't yet understand why the led goes off as soon as the clock starts, I would have thought that between sending the mqtt message and getting a reply there would be time to start polling the i2c bus for updates again.