Ensure cancel is called in RunUtil

When cancel() is called before the process is created, we
end up with the process not being destroyed.
Ensure that if cancel was called, we enforce it.

Test: local unit tests with delays and monitoring threads
Bug: 36033950
Change-Id: I615826373f657dd63afaae273f2caeff9431ec35
(cherry picked from commit ee6e4b6a40d5426af337ff7d9850de6edf343a05)
4 files changed