The orientation is taken from the object and not the cursor.
You can define custom transform orientations, using object or mesh elements. Custom transform orientations defined from objects use the Local orientation of the object whereas those defined from selected mesh elements (vertices, edges, faces) use the Normal orientation of the selection.
Just select the desired face and create a new orientation.