Issue
WaitUntilHealthy currently returns raw task exit, service exit, and context errors. With several services starting concurrently, the final svcinit error does not reliably identify which service failed.
Proposed fix
Wrap each error with the service label and distinguish an exited process from a service that never became healthy. This should retain the original error with Go error wrapping so errors.Is continues to work.
Issue
WaitUntilHealthy currently returns raw task exit, service exit, and context errors. With several services starting concurrently, the final svcinit error does not reliably identify which service failed.
Proposed fix
Wrap each error with the service label and distinguish an exited process from a service that never became healthy. This should retain the original error with Go error wrapping so errors.Is continues to work.