Sadly it looks like it’s not possible to replace a custom domain with zero downtime. Here is some advice from a support thread:
- You could temporarily point your apps and services to the default tenant domain
- Delete the previous Custom Domain
- Add the new one
- Point your apps and services to the new Custom Domain.