Arduino won't go to sleep!

True, that would almost certainly stop the waking problem. Stopping the timer might save a bit of current.

Come to think of it, if you used Timer 1, which can count up to 65535, and a prescaler of 1024, then the timer itself would take 4.194 seconds to overflow.

I want to start a sampling loop every second and sleep when I am done until the start of the next second.

Therefore with a suitable count, you could use Timer 1 to accurately wake you from sleep every second.