Thanks, I appreciate it.
The workflow is quite old yes, however i wouldnt say obsolete, there are still some things particles can do that voxels cant.

This whole process was largely just me experimenting to see how far i could push it by combining most of the techniques i have learned up to this point.
There are a few reasons why i decided to go this route. A few things are happening that neither fume nor phoenix can do on their own. The main one being the color mixing. Fume/phoenix use additive color mixing, the more colors you add the closer to white you get. I wanted subtractive color mixing for this so i can get the third color when the 2 mix, in this case the green. By using tyflow to control the mixing i also have much more fine control over how it mixes, from the mixing radius down to how fast it mixes. Since the mixing is controlled by gradients they could be entirely non-physical if i wanted. You have zero control over that in fume/phoenix.
I chose to go with fumefx because i suspect there is a bug with how the particles follow the phoenix grid. I was unable to get the particles to match the smoke as well as i could with fume. It was as if the particles was sampling the velocity grid from the from the frame AFTER your current one. The particles always seemed to be 1 frame ahead of the smoke, regardless of the amount of sub-frame steps. I would have very much liked to use phoenix instead of fume for this since i prefer the visual style of the smoke a bit more than the fume one, its more realistic looking. This was a problem for me because the krakatoa caches are sampling the density of the voxel grid. If the particles dont match the smoke then it can lead to odd artifacts such as holes in the sim where the particles drift outside the density field. I also use the density gradient to calculate normals with magma so if the particles don't match, neither will the normals.
Another reason why i chose particles over voxels was for the shading and detail. In order to reach that level of fidelity on a voxel grid the resolution would have to be crazy high. Even then you cant get the same amount of variation in density since the particles are physically moving and clumping together which creates a more natural look. This especially helps with the color mixing since it tends to create strands of overlapping color instead of a general diffuse mixture. I also wanted some form of specular on this so it would appear shiny and krakatoa allows me to render with various different shading modes. I am manipulating the particles in various ways with krakatoa's magma editor, such as tweaking the absorption colors/densities/normals etc.
The last trick i used was to render the final effect at 1/2 resolution and then use an AI up-scaler to smooth out the dots generated by the particles. Rendering at 1/2 resolution also increases the density of points in the render due to how the point rendering works so this reduced any noise even further.