This is a proprietary solution, but it looks like it would do more or less what you're looking for: the small button could switch the Arduino on and then after some task, the Arduino could digitalWrite to the "Off" pin to turn the power off. The switching circuit itself draws 10uA in the off-state, but that's very little and should stretch your battery life.