The automatic backup function relies on a WP-Cron function being executed. Normal cron jobs run at specific times that are determined by the server settings, but the WP-Cron function runs every time the site is visited. The WP-Cron function is beneficial because it enables WordPress powered websites to run correctly on any kind of server setup, eliminating most of the specific server requirements. Some jobs take a lot of time, so each time the page is loaded, WordPress checks whether it is necessary to run the WP-Cron function and makes a request to the wp-cron.php file over HTTP. The main task of this file is to keep running WP-Cron function as a separate background process, without slowing down the load time of the page requested by the user.
As the WP-Cron function is triggered by a page load, the schedule backup will not happen if there are no page loads on your site when the backup is scheduled. To ensure that your backup runs, you need to schedule a task to run at the time when you request a backup. Please see this link for more information about scheduling a task.
The life of the WP-Cron function is determined by the required jobs it needs to complete and the execution time, which is set in the server configuration.
A backup can also fail if there are issues with your WP-Cron function. There can be exceptions when the WP-Cron function can’t complete the jobs within the execution time, or if it isn’t working. Situations are different but most people blame WordPress for that. As the the WP-Cron is based on the setup of your web host and the associated server configuration, many issues are not caused by WordPress.