One thing I found out is that the precompile only applies to Web Form widgets.
So this has become a little obsolete for me as I push everything to the Feather MVC
Your 302 could be resolved by a different means.
One thing you should do for your site is to set the "Idle Time Out" value on the app pool to zero. This will stop IIS unloading your site after 20 minutes of no requests. (This is by design)
Another option is to also set up ping requests via a monitoring tool to access your most popular pages. This first keeps the site always up and in memory avoiding the point above and keeps that page in cache.
Another option is to increase your default page cache time. The default is 2 minutes, Jump it to 10.
There is also an option that I recommend to reduce the number of versions of that page that get stored in the cache.
The above will mean the site only goes into "Init" mode when you deploy something to the bin directory or update the web.config. (These are triggers to IIS to restart the app) And you will be in control of that.