Argh. Ok. Found the issue. It was me being a bit dense.
Just for everyone else’s possible blunders (but really I doubt anyone will do the same thing) here’s what was going on.
Since I move “space” while keeping the ship still I apply the force on a physics object of the ship and move the world inversely to the movement of the ship.
So if I move the ship forward 10 units I move the world backwards 10 units while keeping the ship still.
When it came to rotation though I applied Torque to the physics body and then applied the rotation Quaternion of the physics body to the world space inversely…
I was doing that by applying the current rotation of the physics body
To the node containing space like this
This has an additive effect on the space node. So although the ship had stopped rotating it was still applying the rotation value to the space node.
Sooooo instead what I did to fix it was this instead. First get the Angular Velocity of the Ship
Then apply THAT (inversely) to the space node.
space.rotate(-angularVelocity.x, -angularVelocity.y, -angularVelocity.z);
Works SO much better now.