Wouldnt it just be easier to assign a expressions that tekes into account the euler rotations of some dummy object like a locator?
something like this(very pseudocode)
PS. if you woud need more controll then make a anumerated list that drives many different values the echnique can be extended as much as you like...
rotation=x*(yourexpression)+(1-x)(rotation.locator);
While you could do this with constraints (multicontraining the same object and then use set driven key to drive that), it would probably be more convinient to resort to one expression. since now you could incorporate much more controll, like keep the locator in synch with the expression when you dont want to manualy animate it. like this:
if x=1{
rotation=yourexpression;
rotation.locator=rotation;
}
else{
rotation=rotation.locator;
}
now if you make x a value that is owned by your object then you could make a hotkey (markinmenu shelfitem whatever) that lets you do the toggle, quick and simple and also reuse the code and button on many objects (as long as the name of that controller value stays the same on multiple objects)
note that if you need tha aditional speed boost then its probably possible to do this with a node controll structure instead of expressions.
Ps this can be extended to include much more units.
PPS. oh you would probably need to key the value at switch... sorry cant test im lying on the beach and cant acces maya right now.