Read the datasheet on the cpu for insight on lowering the sleep current more. You may wish to power down some internal features before going to sleep.
I'll take a look. Edit: I'm using avr/sleep.h and avr/power.h to call "SLEEP_MODE_PWR_DOWN". I thought that powered down the most stuff.
Maybe I'm missing something, but how do you get the ATmega to read an input when it doesn't have a ground connection?
It wouldn't be doing anything until the switch cause the NPN to saturate, then the arduino set the output to high, keeping it saturated when the button isn't pushed anymore.