I have a PauseToken instance that I can pass to any number of operations (synchronous or asynchronous), and those operations can monitor that token to be alerted to pause requests.
A PauseTokenSource is responsible for creating the PauseToken to be handed out and for issuing the pause requests.