Off the top of my head, I think I would have considered a masterless node system like CAN here, there everyone would just post their press status on change and on cyclic… because if you have to relay I2C messages even at 400kbps, that seems like a latency build up at n keys down the line.
But, I haven’t really thought about it at all. I’ve only used I2C like twice ever!