sleepy_cron
This module aims to preserve server resources (processors, memory, thus electricity) by not running the cron on websites that are not used.
This is pointless on a classic production website, which is expected to be used regularly.
But it can be useful for test instances on test servers. Some agencies run many test instances for many branches of many websites. In that case, running the cron can take much resources, especially if it's run every minute (which sometimes is needed to ensure reverse proxy cache invalidation). Even if the cron has nothing to do (for example because jobs are scheduled thanks to Ultimate cron), it still bootstraps Drupal.
It can also be useful for anonymously-used websites which are behind a reverse proxy such as Varnish and hardly ever change. In that case, most of the time, the pages are served from the reverse proxy cache, and PHP is not used. Then the resources consumed can be greatly reduced if what still uses PHP (i.e. cron) does not run.
Now you may wonder: for such cases, why not just use the core automated cron (previously known as "Poorman's cron"), and no crontab?
Because sometimes, even on test websites, you need the cron to trigger very regularly at the time the website is being used (for example, to send invalidations to reverse proxy cache, or more generally to process a queue). And because, when the website is used again, you want the first page requested to show up-to-date data, not stale data that will be refreshed only after cron.
Features
This module stores the latest time the website has been visited. If it's a long time ago, the cron "falls asleep". Then the cron process is prevented, until the website is visited again. At that time, the cron is run once before the page is built, and a warning message is shown (if the triggering user has the permission to see it) to tell that the cron has not run for a long time.
For more info, see the README.md file.