Draft: Wire step-runner job cancellation through the build
What does this MR do?
Wire step-runner job cancellation through the build
Split steps.Execute into Prepare/Run/Cancel/Close so the build can hold a cancel handle for the running job, and plumb it through trace.SetCancelFunc in common/build.go. On the concrete runner side, forward JobCtrl cancellation into runner.Cancel, and give env.Command its own process group with a WaitDelay fallback so a killed child cannot stall cmd.Run on pipe EOF.