okay, read the Power Reduction Register part of the datasheet. Not really clear to me which part is keeping it from operating normally, so I just reset all of them on the interrupt and that seems to have it working normally.
Sleeping now comsumes 0.99mA. 1000mAH LiPo battery should go quite a while between charges now!
set_sleep_mode(SLEEP_MODE_PWR_DOWN); // setting up for sleep ...
sleep_enable(); // setting up for sleep ...
// <<<<<<<<<<<<<<<< March 2, 2011 - added some more power down stuff >>>>>>>>>>>>>>>>
// Disable ADC
ADCSRA &= ~(1 << ADEN);
// Power down functions
PRR = 0xFF;
// <<<<<<<<<<<<<<<<< end of new March 2 stuff >>>>>>>>>>>>>>>>>>>>>>>
sleep_mode(); // now goes to Sleep and waits for the interrupt
/* The program will continue from here after the interrupt. */
detachInterrupt(0); //disable interrupts while we get ready to read the keypad
// <<<<<<<<<<<<<<<< March 2, 2011 - added some more power down stuff >>>>>>>>>>>>>>>>
// Power up functions
PRR = 0x00;
// <<<<<<<<<<<<<<<<< end of new March 2 stuff >>>>>>>>>>>>>>>>>>>>>>>9
/* First thing to do is disable sleep. */
sleep_disable();