Gosh, I always manage to figure it out right AFTER posting a question.
I renamed the unit to WaitCursor.pas instead of WCursor.pas and then I was able to refer to WCursor.SetWait. When the unit was named the same as a variable inside, it apparently got confused.
I don't think I had this problem on Delphi, or maybe I did and solved it in the same way, but the evidence I have shows otherwise.
I just ran a test and the hourglass cursor is working.
I don't understand the code exactly, but that's the beauty of it, you don't have to understand it to make it work.