Auto creation of multisite blog on user registration

I guess you are searching for the wpmu_create_blog() function. Just disable the standard registration process and attach this function to the regular registration. user_register is a good action hook to do this.

Regarding your second question I don’t think there is a built in way. A good start is the wpmu_delete_blog() function. You could trigger this function on a regular base using wp-cron. The information when a blog was updated the last time is stored in wp_blogs in the last_updated column, but I don’t think there is an API function to retrieve this either. So you’ll maybe need a custom SQL query to get it.