Send cancel requests to the daemon in run tags.
can_cancel becomes a pure function of just the run state (it should also check that termination is supported by the configured launcher).
With the daemon:
- the daemon could retry calling launcher.terminate_run, and eventually 'force terminate' it. Force termination is no longer exposed in Dagit, though the failed retries could appear in the event log.
Without the daemon:
- the retry and eventual force terminate is handled by the dagit process in the DefaultRunCoordinator?
- it will be difficult to write an index for this?