No or better: It isn't easy.
1. (Only) You know exactly what you need and how the workflow and standards is in your enviroment,
but you don't know which solutions are possible and if they get close enough to your "perfect 100% wish"
2. (Only) We know possible solutions, but we don't about your workflow, standard and enviroment,
so we can not say there are solutions which are close enough to your "perfect 100% wish" for you.
I am pretty sure: There is no way so simple like uncheck the COLOR-Property by restoring your layerstates.
If you are talking about only known layerstates (everytime everywhere the same names),
and thats all Modelspace-states:
Do you want to Update all layer colors to the current colors?
I would try these steps:
1. Save current state as "tmpstate"
2. For all my known layerstates:
Setq Color-flag to No, restore this state, save this state.
3. Set "tmpstate" current, delete them.
The result should be only the colors refreshed.
Do you want to Update only the color for one layer ?
I would try these steps:
1. Save current state as "tmpstate", ask user for Layername and color (and save this answers)
2. For all my known layerstates:
Setq Color-flag to No, restore this state, setq Layer color for this one layer to the color of your choice, save this state.
3. Set "tmpstate" current, delete them.
And again: I am pretty sure: There is no way so simple like uncheck the COLOR-Property by restoring your layerstates.