My main routine is not clogged at all, it's basically scanning the keypad matrix and sending the keypress data to the host, and that's it. I just thought it would be more elegant to guarantee a constant usbPoll() every x milliseconds if I did it with a timer interrupt.
By the way, since you have tons of more experience than me on v-usb; is there a way to confirm a correct USB enumeration? We've had other controllers in the past that fail to enumerate and they show up on the cost as VID 0000 and PID 0000 and the host can't do anything about it, until you physically disconnect the device. Is there a way to verify from within the AVR that the device was enumerated correctly, and then if not attempt re-enumeration?