After some experimentation on the breadboard I have found that it will come out of sleep successfully if, after the time has elapsed, I momentarily short RST to ground with a wire (it wakes up after the short is removed).
Is there something around the configuration of pin D0 that means it is not providing an appropriate momentary low signal to RST at the end of sleep? Do I need to do something different either in hardware or software?