chore: prefactor for sending task logs to spaces (#6383)
### Description
Primarily code shuffling so we can easily capture log outputs to send to
spaces.
In this PR we move the actual task execution to happen in the new
`ExecContext::execute` method. This allows us to control the
graph/process manager stoppage behavior in a single place. There's
certainly more clean up that can happen, but I wanted to at least get us
to a place where we can deal with the task logs in a single place
instead of the multiple exit points.
### Testing Instructions
Primarily 👀
Verify `--continue` usage works as expected:
Setup:
- `npx create-turbo test -m pnpm`
- Add `"build": "exit 1"` to `packages/ui/package.json`
- Verify that `EXERIMENTAL_RUST_CODEPATH=true turbo_dev build` only
executes `ui#build` and then exits due to failing task
- Verify that `EXERIMENTAL_RUST_CODEPATH=true turbo_dev build
--continue` executes `docs#build` and `web#build` even though `ui#build`
failed.
Closes TURBO-1599
---------
Co-authored-by: Chris Olszewski <Chris Olszewski>