Same rotation for different objects (with different directions)

unity 5.1.1
Have a problem with synchrinization of rotation for two objects: if main object rotated - the second must do same rotation in world space no matter of it’s direction.
That’s how i;m trying to do:

 if (lastLocalRot == curLocalRot) return;
    Quaternion qt = Quaternion.RotateTowards (lastQuaternion, curQuaternion, 10f);
    qt.ToAngleAxis(out angle, out axis);
    Vector3 newpos  mainTranform.TransformDirection(axis);
    Vector3 posSec  secondTransform.InverseTransformDirection(newpos);
    Quaternion qt2  Quaternion.AngleAxis (angle, posSec);
    secondTransform.rotation *=qt2;

The result = second object rotated around axis with right direction, but angle is very high, and it rotating very fast.

There is an example in attach. To see where the problem is - run, use rotation tool in edit screen? and rotate left model.

really get in trouble with this synchronization:
That’s how i try:

Quaternion qt2  = Quaternion.AngleAxis(Quaternion.angle(lastQuaternion, curQuaternion), posSec);

This gives a better result - second object rotating in right axis with right speed, BUT! when you start rotating in opposite side - it continue rotating in last direction, and after some frames starts rotating in right side, but object become asyncronic.

What is this? Where is i’m wrong? i can’t understand why it is happing ?

Did you already found a solution?
I am having the same problem…