While this is clearly an application for an end-device utilizing sleep mode, routers still get powered on and off at times, and I'm a little surprised if it takes a router that was previously joined to the network
several seconds to become operational. OTOH, as I said previously, this is contrary to the recommendation in the XBee product manual
. I'm not sure what the justification would be for not using an end device, but that is certainly the tree that I would bark up.
See p84-85 (and elsewhere) in the product manual for a discussion of pin sleep. Note use of flow control to determine when the module is able to accept data. Importantly, note that even in this mode, the power to the XBee is not switched: use of the sleep mode puts it into a low-power standby condition. This is an important distinction and almost certainly contributes to a faster wake-up time for the XBee.
I took a quick look at Alan Mitchell's blog, and I'll read it more closely later, but my initial impression is one of confusion. For many of the same reasons, I would not switch power to an Arduino any more than I would to an XBee. I would instead invest the time and effort that is being put into a custom power controller to develop a custom microcontroller board which (unlike an Arduino) is specifically designed for low-power operation and takes advantage of the ATmega328P's sleep modes. In fact I'm in the middle of such a project right now, developing a stand-alone data logger board which will run on a pair of AA cells for many months at least. A related project which I've just done some thinking on is to use an XBee (end-device) to transmit sensor data rather than storing it locally.
Good luck with your project, there are some fundamental concepts and design assumptions that I would re-evaluate.