For me, nothing that I've found online worked so far. But I've managed to find a solution though. The difference is that my game was fully controlled by the backend, so no physics involved on the frontend. Only a dummy change of position.
Using the solution Erik mentioned made my character move jittery which is not nice but might work for some games.
I assume that since you said "no matter the 'down' for the camera", you want the rotation to be relative to the camera and you are not actually rotating "the world".
Then one reason your original script was not working is because
Quaternion worldRot = Quaternion.LookRotation(Vector3.forward, Vector3.left);
should have been
Quaternion worldRot = ...
For a typical FPS camera that can't look straight up/down (to stay away from the gimbal lock point where the view just spins), I'd use Quaternion.Euler to construct it from your yaw and pitch variables.
We'll measure our yaw and pitch relative to the current world orientation, so all we have to do is multiply this by the world orientation quaternion to get ...
This happens because you are in the Editor, and you have opened 3 Game tabs, each game tab is a separate game render. You need to either move ONE game tab out from the main view and resize stretch it to fit all 3 screens at the same time, or build program and launch it(once) in one window.
Firstly, you can run your Blueprint logic on EventBeginPlay, as I assume you won't be changing lens settings during game play.
Secondly set your Undistort Overscan Factor to 0.0
If you're going for a GoPro effect you won't need overscan area for undistorting down the road.
I have just tested this in 4.24, but my images are having issues uploading ...