Easier to write and test
Previous version was not friendly to unit-testing, this changed v3!
In v3, your task should not inherit from specific class - just implement IRunnable interface (with one Run method)!
Also, all services/options you need - accept them in class constructor (and don't forget to register in DI). Your task class now resolved from DI container on every run, and all dependencies are injected by DI infrastructure.
You will find your new tasks are much easier to unit-test.