Hi Ed,
The initial startup time due to inactivity is actually by design with ASP.Net
The inactivity duration is by default 20 minutes and is controlled by a setting in the app pool settings of the IIS manager.
The best way to keep the site fast is to not let it cycle down, and a lot of people will accomplish this by monitoring their website with an external monitor.
If you check it every 15 minutes with an external monitor then you can also be notified if it isn't working at all.
PageBlaster can also help a little since after that power down and restart the page will not have to be rebuilt from the database if it has been cached on disk. If you are using PageBlaster and the site powers down then you will still have a noticeable startup time that is internal to ASP.Net though.
On my site I have both, and it stays very fast at all times.
You can get a free external monitor by searching google for "free website monitor". I use to recommend host-tracker.com but just found out today that their free monitor is no longer checking every 15 minutes and has been changed to 30 minutes.
A new one that I am trying out is http://www.montastic.com/