Edit: I was able to solve this problem by subtracting the local, rather than world, locations, eliminating edge cases in which, for example, current.x-target.x=0.
A screenshot of my problem blueprint is attached. While evaluating various ways of making a hovercraft, I stumbled across this design, which shows the rest of the blueprints. The current pitch/roll is the world location difference between the front/back and left/right hover points on the ship, and the target pitch/roll is the same thing, but from the impact points of a line trace from each of the hover points.
It works quite well, but I hit what seems to be gimbal lock near 90 degrees; the ship should be able to go upside-down around a loop, but it refuses to rotate on any axis near the 90 degree mark. I’ve heard that Combine Rotators might be able to help here, but I’ve struggled with the concepts for too long now. Any suggestions?