IIRC, and I could be wrong, the Importer base implementation for cancel stores an is_cancelled flag in the importer instance. Rather than putting it on the plugin writer to properly set this, what about if we look at that flag in the manager? We still have the importer instance floating around at the time it's used.

The only caveat is that it's still on the plugin writer to make sure to call the super cancel method to set that flag. But that's easier to spot than to dig around the code for where this build method is called.