I think your problem is on the END point, when you calculate forward vector x 1000.
Try this, instead of getForwardVector, use this function I created.
Initial location: will be same location as your start.
Initial rotation: pass your Player.GetControlRotation value (NOT THE CAMERA VALUE)
I think this will solve your problem.