I agree with the premise that having context deal with both cancellation and context is a problem, and that should stop. It does indeed cause context to migrate into places it has no real business being, aside from the cancellation side-effect. That should be its own thing. However, I don't think context as a whole needs to go away, but its responsibilities should be split.