Hi,
cached_html_pages and fallback_cache are two different functions. So, the cached_html_pages kicks in when you have enabled the option of Purging only HTML pages: https://i.imgur.com/evz08nZ.jpeg
In this case when you purge cache for a page or when you update a content and the plugin starts purging cache for that page and related pages, instead of purging everything, i.e. the main HTML page requests + the static files of the page, instead it only purging the main URL that is HTML page. E.g. https://example.com/something-foo/.
So, to facilitate that feature, the system needs to know all the page URLs that are cached in Cloudflare. So, the way it does is, when someone access a page for the first time and it is not yet cached in CF CDN, the plugin takes that URL of the request and put it in the cached_html_pages folder with a .tmp file.
Also at this time, if you have fallback cache enabled, the plugin will also generate a disk level cache of the HTML page in the fallback cache folder. So, that in future if the cache expires and the request comes to the origin server, then instead of executing PHP the fallback cache and send the disk cached HTML.
But if you have prefetch on hover or prefetch on viewport option enabled in the others tab of the plugin settings, at that time the prefetch request invoke Cloudflare to cache that page but fallback cache is not yet generated. So, when that cache expires and request comes to the origin server again – at that time the fallback cache is generated.
I hope this clarifies your doubt and question.
Also note that if you have a moderate traffic website with Cloudflare Smart Tiered Cache enabled in Cloudflare dashboard, you might not need the fallback cache and Cloudflare will keep the content cached for much longer time.
To learn more about how Cloudflare cache works, check out: https://acnam.com/untold-truths-of-cloudflare-cdn/#cloudflare-cache-creation-replication-storage