Thanks for the feedback!
The issue with the stairs is more about my character controller. Since I’m just pushing a rigidbody around, I was getting stuck on the staircase since it was too steep. As a band-aid fix, I updated the movement controller so that lateral (XZ) movement would be applied on the plane defined by the ground normal, rather than the plane defined by Y-up. The end result being that the player has more Y-velocity than they should, once they reach the top of the stairs, and ends up flying off.
The staircase is a simple StaticBody3D with a handful of box colliders, the issue was just that the staircase is too steep