Let's convert this constant rotation to a `Matrix3` - you can easily get Components to do it for you - and hard-code that instead.  Then use `Matrix3.multiplyByVector` to rotate the vector by the matrix.  This will be a bit more efficient, and also eliminates the need for the `Cartesian3.rotate(Quaternion)` that you added (although I was amazed to learn we didn't have such a method somewhere already!).  Also, break the hard-coded `Matrix3` out into a separate variable at module scope rather than hard-coding it in two places.  And name/comment it appropriately.  It is the rotation from the "Mean Ecliptic Mean Equinox" axes to the J2000 axes at Julian date 2451545.0 TDB.