wyUpdate waits infinitely for a service when starting or stopping services because it assumes your services will be well behaved. wyUpdate has a built-in algorithm that will rollback the updates if your services fails to start or stop. But it sounds like you're trying to build in your own rollback algorithm and this is where the problem is.
Any chance you can reproduce this behavior with a small test service so we can perhaps work around this bad service behavior?
I should also note that we'll be altering the algorithm in the next version of wyUpdate that will allow the user to cancel wyUpdate if a service is failing to start or stop.