If you have multiple app containers this is only possible if you don’t have any database changes. If you do have database changes then there is no way around it.
We do this with our on premise deployments. We shut down one server, push the package, and then start it, after couple minutes of waiting, we do the same thing to the second server.
I’m not sure how the Mendix cloud handles this but I briefly remember reading something that if you have multiple instances that the deployment will automatically do this.
Mendix could improve this IMHO by keeping the current container alive until the database synchronisation phase, and then switch, That would only have a downtime of a couple of seconds. If the sessions persist users don't have to logout.
Not within the Mx cloud for all I know, but it could should be possible with your own Cloudfoundry hosting: https://docs.cloudfoundry.org/devguide/deploy-apps/blue-green.html