How can I automate the site setup process during installation?
I recommend you take a look at NodeStream for examples. With a combination of install profile and Features, you do a great deal of setup during the actual install. You could either build on top of that, which is what we do at work, or you could use it for examples.