The problem with inetmgr you observed will be fixed in Win2008 R2. The value of "0" that disables time based recycling was not special cased. UI tries to be friendly and prevent administrator to configure idle timeout to be more than time based recycling value since that would cause the idle timeout to never apply. That check makes sense for anything but 0.
The problem is scoped only to inetmgr check. Runtime should handle the configuration just fine if you bypass the inetmgr check.
If you want to set the idleTimeout programatically, here is the appcmd command (customize the name of the application pool)
%windir%\system32\inetsrv\appcmd.exe set config -section:system.applicationHost/applicationPools /[name='DefaultAppPool'].processModel.idleTimeout:"00:30:00" /commit:apphost