Can't you do that if you are using a software package? By this I mean, if the light is turned on (I'm not sure if tapping the on switch can be read and trigger an event) set a timer in the software and then turn it off n minutes later.
If the turning on of the switch itself does not do that, could a periodic polling be done (is once a minute too intensive? It's insteon so isn't it fast?

)? Then just control it from the software. I could be way off, I've been focusing on the hardware aspects, so I haven't started my fun with software (but I'm quite anxious to get there. Spanky has a few upcoming 'promises' though (touchscreens, insteon, etc) so I'm trying to get all the pieces in place in preparation for them (and then the software fun).
I know it was perfect for how I'm using (keeping a bathroom fan on for 15 minutes (or multiples of that, we will typically tap it a few times when going in). If you want occupancy 'tracking' for lights, you would see the issue you are considering (and the keypad problem).