Use spawner to spawn work task instead of tokio (#1328)

* Use spawner to spawn work task instead of tokio

This allows the caller to choose the runtime they want (instead of tokio).

* Replace generic by actual type
8 jobs for master in 22 minutes and 56 seconds (queued for 1 second)