Finally, after many battles, I have simple photon scattering.
Then I performed photon scattering by shooting rays, storing their position and color as they hit objects, and recursing on the reflected rays. At this point, I don't have the correct power/color computation. I'm only directly storing color as they are absorbed, just to see if I can do it correctly.
Next step would be to do correct photon scattering, which involves correct power adjustment and Russian Roulette method for absorption.
Here is a screen shot of photons visualized over a ray traced scene. The color showing is the color of the previous reflected surface, and each photon can be traced correctly.