Quick note on this error, it is not documented and I did not find any answers on Google;
When you create a site by calling ProfileUser.CreatePersonalSite() you can get the error "This site does not host personal sites". To resolve this, create a root sitecollection on your MySite web application.
btw. make sure you use the "MySite Host" template for this rootsite.