It looks like the reason you need this is because there's an initialization ordering issue -- where the BlockManager gets initialized before the dag scheduler / listener buses, so you need this intermediate thing?  It would be great if you could document this in the doc here.