I've uploaded my go at overlay root to github
https://github.com/chesty/overlayroot
It's handy for playing around with your pi, the real root on the sd card is read only, so any changes you make aren't permanent and will be lost the next time you reboot, crashes won't hurt the filesystem, or hard power offs, either.
I don't have a head and can't see shutdown messages and there is a problem with the overlay on usb no being unmounted. ATM if you put the overlay on usb, it will be reformated every boot. Another option is to put the overlay on the sd card as a third partition, not ideal as one of the ideas behind me playing with overlay mount was to limit sd card writes. The third option is to use tmpfs. I believe tmpfs has the drawback of limiting the amount of data you can write. If you edit 1 character of a 100 meg file, you've just used 100 megs of memory. I think the only way to get the memory back is to reboot, and of course, you've just lost the change you've made.
To put overlay mount on a usb stick, put a label on the file system called overlaytmp
mkfs.ext4 -L overlaytmp /dev/sdz1
change sdz1 to your real device, when it boots, if it finds a file system with the label overlaytmp, it will use that, otherwise it will use tmpfs.
if you put overlay mount on a usb stick and you want to go back to tmpfs for a bit, run
tune2fs -L overlayoff /dev/sdz1
that changes the label from overlaytmp and then when you reboot, it won't find overlaytmp and it will use tmpfs
to work on the real read-only root, I use the script rootwork, it sets it up and chroots into it.
I think that's about it.