I highly recommend turning off the idle timeout in most situations. It's the default but it's meant more for bulk hosters that want unused worker processes to be ended so that they can always assume that they won't have all of them running at the same time.
However, if you have just a few production app pools on a server but occasionally don't have a visitor in a 20 minute space (i.e. overnight), you don't want your app pool to stop. You likely have enough resources to have all of your app pools running at once.
Additionally the default settings of recycling the app pool at different intervals should also be changed. It's a Band-aid to have to recycle regularly. That is only needed if you have a memory leak that you can't solve. As long as your application runs well, you can turn off all recycles and let it run until you next patching window or reboot. If you do have some issues and you want to recycle, I suggest doing it at a time like 4:00am daily. If you have monitoring software watching the site then by 4:01am, everything will be up and running quickly again.