Cache control headers are best handled at the server (reply), not the client (request). It would also seem to be fairly trivial to modify your plugin code to handle the reply headers. That said, I went ahead and added cache headers to my cron job, butit appears that Cloudflare is ignoring cache headers in the request.
My new cron job uses the following code:
curl -sv -H "cache-control: no-store, no-cache, max-age=0" -H "pragma: no-cache" "https://[domain]?swcfpc=1&swcfpc-preloader=1&swcfpc-sec-key=[key]"
Cron request headers:
GET /?swcfpc=1&swcfpc-preloader=1&swcfpc-sec-key=[key] HTTP/1.1
User-Agent: curl/7.29.0
Host: [domain]
Accept: */*
cache-control: no-store, no-cache, max-age=0
pragma: no-cache
First reply headers (after purging Cloudflare cache):
HTTP/1.1 200 OK
Date: Thu, 05 May 2022 18:18:05 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
x-powered-by: PHP/7.4.29
vary: Accept-Encoding
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
x-turbo-charged-by: LiteSpeed
CF-Cache-Status: EXPIRED
Last-Modified: Thu, 05 May 2022 17:19:04 GMT
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Report-To: [...]
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: [...]
Second reply headers:
HTTP/1.1 200 OK
Date: Thu, 05 May 2022 18:19:01 GMT
Content-Type: text/html; charset=UTF-8
Transfer-Encoding: chunked
Connection: keep-alive
x-powered-by: PHP/7.4.29
vary: Accept-Encoding
alt-svc: h3=":443"; ma=86400, h3-29=":443"; ma=86400
x-turbo-charged-by: LiteSpeed
CF-Cache-Status: HIT
Age: 56
Last-Modified: Thu, 05 May 2022 18:18:05 GMT
Expect-CT: max-age=604800, report-uri="https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct"
Report-To: [...]
NEL: {"success_fraction":0,"report_to":"cf-nel","max_age":604800}
Server: cloudflare
CF-RAY: [...]