The cache rules you are describing are for how long the browser can use a cached image without requesting it from the source.
Cloudflare keeps cached files on an edge node depending on how often it is accessed and how busy the edge node is.
Chances are Cloudflare is removing images from the edge node as they are not accessed regularly, so the request has to go to your source server, resulting in the long loads. Remember Cloudflare is not a proper CDN (ie permanent hosting of images)
We found Cloudflare was not suitable for our image hosting as images were getting removed from edge nodes if they weren’t accessed every 10-15 minutes, so we run our images off a dedicated image CDN.
I see a lot of back and forth human conversation on 2714162, do you have a duplicate ticket that we should merge into that discussion? Seems something related to cloudfront, but on the ticket can you please share the report with and without Cloudflare so that the team can compare the performance?