Haha, you did it (i man separate and cleaned core volume code from my fat almost-obfuscated-patch), conglatualtions!. At this state, i barely can understand my patch parts and fear to touch code that not lookes 2 weeks, it become so unrealistically complex to maintain and fix.
You even do some one step sampling from light direction (limited bidirectional), i have no that parts, it is Stuart invention, it help to clean noise around light a lot.
About "g" parameter, it is like Phong specular power, but related to volume particles. of 0, it do uniform sphere distribution (smoke?), if 0.6-0.8, more close to human tissue like skin/blood, and at extreme cases close to 1 it go to transparent material like colored glass (not recommended, big computation overflow errors). Must note, that water vapor and small droplets in air have very complex Phase function, with many peaks, and related to wave lenght, current Henyey-Greenstein model too simple to make that, so do not expect to see rainbow. I think that "g" around 0.7-0.8 make fog looks more like real street fog.
Beware, real media scattering is multi bounced, and you need 2-3 bounces to get light that "bend" around objects, it very slow, for example this is 15 hour render on i3770K (my patch used, but sure DingTo variant can do same w/o limitation). One bounce (or 0) scenes can ve rendered on reasonable speed, ofc.