You can control the behaviour of the 3D Cursor orientation via the Cursor tool :
Enabling the Cursor tool gives you options to set whether the cursor is projected to the clicked surface and how the Orientation should be updated.
The default option is for 'View' - so the cursor is always oriented to the current view. In order to prevent the cursor from being reoriented at all, select 'None' - if you do this before moving the cursor from its initial default orientation then the cursor will remain aligned with the 3D world coordinates.
If your cursor is already skewed then you can reset it back to its default orientation by selecting 'Transform' orientation mode and then clicking anywhere in the scene not on a mesh - this will reset the orientation to the world. Once you have done this you can change the orientation setting to 'None' so that the 3D cursor remains in that orientation.
In order to set a custom orientation, you can orient a surface in the direction you want to set the 3D cursor, set the Orientation mode to 'Geometry' and click the surface to move the 3D cursor to that surface, settings its orientation.