Character slows down when rotating the camera

It works for everything, every angle and surface imaginable. Feed it desired location and normal. And it does not rely on geometry, you do not need to use it. You can trace as you were and add +90z to the result.

But it’s a handy tool, sometimes you may have a body of water / foliage you do not want to take into account. And handy if you want to have this floaty feeling when cursor appears above ground, because we’re actually stopping the trace above the surface and intersect our virtual plane instead.