Wanted: Quick(ish) Reliable bulk export of all KV data from a namespace

It seems like a fairly common request to be able to bulk export KV data in much the same way that you can bulk import KV data through Wrangler.
I have tried through both the KV API and making a worker to return bulk data.
I have 500,000 KV keys to export
Both options took a very long time 24hours+ and failed part way through, and due to the way the KV list works it was not really feasible to resume them.
I could effectively roll my own pagination by iterating through by key prefixes A-Z or similar but it seems a lot of work for something that I would expect to be able to achieve through the web interface or Wrangler.

Does anyone know of a better way to do this?