I guess so, but you can defs do your standard stuff inside the GetData and SetData, just like you would inside a normal SolveInstance call!
Depends: if you have access to that code, what you need to do is pass along the CancellationToken and make sure to check whenever you can if it’s cancelled and return early. If the class belongs to a 3rd party dll, then I’m afraid that this approach won’t help.
That’s really weird. Not sure what’s going on! I usually set the build folder, rather than copy pasting the components (using GrasshopperDeveloperSettings) - maybe give that route a shot?