Have you considered storing up data in Fly-managed Redis instead to keep the clusters in-sync? Quite expensive and still in preview, but using it might simplify the pre/post deploy ceremonies, otherwise.
Alternatively, you can consider using disks that persist across deploys (though, be wary of zombie disks). Could even run SeaweedFS atop it, if you’re adventurous.
The problem with failing the health check (steps 2 to 4) for longer time is, Fly might rollback the deployment (which is another scenario the app would have to handle).