You can decrease CPU usage with something like:
while true ; do xgamma -gamma 5 ; sleep 5 ; done &
This will only run the xgamma once every five seconds, instead of constantly, which should help the CPU load.
But no, I don't know of any good way to make it work properly. I'm sure there's a Q3 config file somewhere -- is there a way to disable the GAMMA extension (or whatever it's called...) in there? That way, Q3 might use software gamma or whatever, and your xgamma value may not be overwritten...