I’ve figured out how it can be done.
After searching a lot and through old forum posts I found this: Movement according to location of mouse on screen - #5 by anonymous_user_f6e959cc
I adapted this approach to my blueprint by replacing the normal camera movement nodes with a custom function that first checks to see if we’re flying. If we’re not, then do the normal camera inputs. If we are though, set forward velocity as normal for flying forwards.
Then, in the event tick, if we’re flying, use the logic in the other forum post to get direction * .001, then add the X and Y of that to current rotation, clamp the Y value to prevent over rotation (gimbal lock an issue here so if you pitch too far the player inverts and flips really fast, might be able to fix using quaternions but I’ve not gotten that far yet), multiply X by -1 to prevent inverted Yaw, then lerp to both Y and Z of Set Actor Rotation to smoothly rotate. Blueprint here.