I got some good feedback from a team member to try a darker smoke. After playing with the blending modes, I went back to an older method that seems to give good results :
SRCBLEND = SRCCOLOR
DESTBLEND = INVSRCOOLOR
The idea is that it darkens more than it brightens. This is a sort-independent mode, very similar to addsmooth, so there is no need to sort the particles before applying it. One could achieve a similar effect by doing INVSRCALPHA in the dest mode, with an alpha that is different than SRCCOLOR.
It looks more like smoke fire, wheras the older whitish smoke looks more like steam. I suppose we'll use the white method for steam or mist.
Also added some more tweakable parameters, including a quantity factor, so you can modify the # of particles spawned without changing code.