Does bitcoind have to be caught up downloading the block chain before starting P2Pool?
Yes
Is there a convenient way to ensure this happens unattended?
I'm not currently on p2pool. I currently have my (linux) mining rig configured to run a script on boot that automatically gets cgminer going pointed at the right pools. So, if the power goes out while I'm away, and then comes back on, everything (in theory), just fires right back up again.
So, if I were to switch to p2pool, I'd need some way of automatically launching bitcoind (I guess), monitoring it to see when it's caught up, and then launching the p2pool client.
Or, better yet, to make things easier on everyone, it would be nice if the p2pool client managed that itself so that one could launch it right away and it would monitor bitcoind and not start actually mining until the time was right. But, not knowing what goes on between bitciond and p2pool, I admit that that might not be technically feasible.