OK, I got this working now.
I added a new variable (not a preset variable, just a regular one for the Manager itself) called DeltaSeconds, default at 0. Every iteration of the smooth rotation function increases DeltaSeconds by the GetWorldDeltaSeconds. In the Alpha node on the Lerp, I take the max of either the constant or DeltaSeconds divided by 2. And next to the nearly equal node that decides whether to set the rotation immediately, I added an OR with the check to see if DeltaSeconds >= 2. I could change that 2 to a constant that can be set at class defaults but I figured hardcoding 2 was fine for now. When it does hit two seconds and sets the rotations to be equal, it will also reset DeltaSeconds back to 0.
This makes it so that it will speed up the Lerp but after two seconds it will lock. Because of the speed up, it doesn’t look like it snaps when it hits two seconds.
Also, that rotation offset I added only looks good for certain distances. I think I’m going to have to do the raycast thing to get the perfect rotation offset on preset switch. It shouldn’t be too difficult to do with the Find Look At Rotation node.
Another point is that I had to move whatever happened in the Manger’s BeginPlay event into a custom event due to multiplayer. Depending on latency, sometimes the camera wouldn’t “attach” properly to the pawn. With the custom event, I am able to call it after the pawn is possessed by the controller (OnPostLogin event in GameMode), which should guarantee that the camera gets attached.
Once I am finished, if anyone is interested, I can create a video of what my camera switch looks like in game.