Like the attached video ?
This is possible , but I don't know yet, if it will be possible for all particlesystems, (streaks and blobbies , yes, the other I must check first)
And it needs a new boolproperty in the particle system settings (suggestion for naming welcome ) , to control the behavior of color changing.
But in general changing, surface attributes for particle systems in a chor or action will not work. I have spent yesterday some hours to figure out this .
Your way is the correct way , and when I remember correct , it's so described in TechRef too.
2020-04-27.mp4