Why do you think D3 is not well suited to this task? Given all the amazing layouts it can manage very well this is surprising.
Naturally you wouldn't be able to use their default tree layout because it assumes identically sized nodes but creating your own layout should be doable. If I remember correctly D3's tree layout code is 200LOC.
I am heading down this path now so I'm sorry to see both you and poster above giving up on D3 for this.