Using http://docs.orchardproject.net/Documentation/Deploying-Orchard-to-Windows-Azure I've successfully deployed Orchard into Azure.
After every 20mins or so without activity (app pool recycle?) it takes minutes to render a page. I'm running on an Extra Small instance in Azure. Webinstance, Storage and SQL Database are all in the same datacentre - SE Asia.
There is a module called keepalive, which does a regular ping.
or http://blog.smarx.com/posts/controlling-application-pool-idle-timeouts-in-windows-azure
Also turned off Debug(!) and put in full trust as described here http://docs.orchardproject.net/Documentation/Optimizing-Performance-of-Orchard-with-Shared-Hosting
Will experiment with settings / warmup pages..
The ping seems heavy handed - am I missing something?
You're right about the app pool recycle - the default idle timeout is 20 minutes. If you set this to 0 (infinite), you won't see the pause after 20 minutes of inactivity.
Steve Marx blogged about how to do this. It involves a startup task calling an elevated command script that sets app pool timeout:
%windir%\system32\inetsrv\appcmd set config -section:applicationPools -applicationPoolDefaults.processModel.idleTimeout:00:00:00