Better handling of terminating the running servo

There really needs to be tests around this, there are bugs galore.
Sometimes it will kill the process, and other times it will not, and
sometimes those fail to stops are actual errors, and some times they're
not. :(