Improve the robustness of the deployment via a few methods:

- add retry logic for starting the master process
- shutdown existing slave services before the master service
- log an error when 'clusterrunner stop' fails
Just curious what made you choose 1 second? It looks like previously we were giving the process 5 seconds total to run and bring up the web server which seems more lenient. I suppose it depends on the nature of why we need the `_is_process_running` check in the first place -- is the process taking time to start or is it just completely failing to start?

Let's talk more about this offline, but I mainly just want to make sure the flakiness we were seeing wasn't due to 5 seconds being too short of a timeout for the web server to come up, or something like that.