Isn't this thread about a single target which, which has to read keys via slow i2c? That's very target specific.Most (all?) other targets read via GPIO or similar which is very fine in an ISR.Best regards.
Making an async, interrupt driven i2c driver that can initiate reads in another interrupt handler and call a callback when complete ain't exactly rocket science. There are targets that do that.
Mike