Zero downtime deployments are just a side effect of doing any kind of A/B deployment.
The same features can help you avoid longer downtime. I use dokku at home to run a little web portal. I have a CHECKS file in the repo that has
WAIT=1
TIMEOUT=1
ATTEMPTS=10
/ Portal
...
If I try to update to a new version and the site doesn't come up at all (or a GET for / doesn't have "Portal" in the response), the update is aborted and requests never fail.