The autoscaling implementation is naturally tied to the TaskRunner implementation so something should associate them. Maybe some guicey thing could be done instead of the instanceof check here (like, bundle the TR and autoscaling impls together in the injector).

i.e. if you don't have autoscaling you get a RemoteTaskRunner. If you do, you get an AutoscalingRemoteTaskRunner that is actually wrapping a RemoteTaskRunner and a ResourceManagementScheduler?