The 3D cursor was already aligning properly to the geometry normal but wasnt creating a proper face tangent.
This now uses 'BM_face_calc_tangent_auto()' from the face we are hitting, and creates an orientation matrix from that plus the normal we are getting from snap, which is then applied to the cursor.
This is similar to what the editmode face transform gizmo does.
This leads to a much better experience e.g. when adding objects aligned to the 3D cursor (now aligning properly with the underlying face)