Using production mode do some optimizations on the build and also you can’t use the content-builder. In development you can use it.
It’s advised to use production for production env and development for your local or test environments.
The use of PM2 etc is advised but you can run it differently, it really depends on how you are serving your application.
You could build a docker image then serve that with ECS and other cloud containers.
Personally I run my own server with Dokku (like heroku) and have it build and do the serve for me.