Oooh, good question.
For the client project I'm working on, there's a pretty serious "green/blue" switch over process.
I've not used pm2 yet, but I do want to. I've also used Heroku for zero downtime deploys, and more recently I've started using Dokku (which has some simple docs on how to approach it too).