This method combinates both previous methods. It tries to stop the
service (and waits until it's stopped) then it begins to start the
service (and waits until the service is running). The specified timeout
is used for both operations together.