runBlockingCancellable does not work correctly in an ExternalAnnotator

When runBlockingCancellable is used inside with an ExternalAnnotator$doAnnotate, the job is never cancelled when the document is altered.

This looks to be break the contract of what is intended in the ExternalToolPass$runChangeAware (link)

The culprit looks to be this TODO statement because the run block is the code that calls doAnnotate code

Is there a way to bridge the external progress indicator to coroutine code (since the ProgressIndicator outside the runBlockingCancellable does get cancelled)?

Please follow https://youtrack.jetbrains.com/issue/IJPL-244329