Helper object used to acquire, manipulate, and release a automatic busy/wait cursor.
AcquireDelayedBusyCursor should be used for situations where the amount of time to be spent is unknown, and the desired
effect is to change the cursor to an animated busy cursor only after a predetermined amount of time elapses. Otherwise use
AcquireWaitCursor.
This helper can be either stack or heap allocated depending on how far flung the two ends of the cursor wait period are.
If it all happens within the body of a single function or single function call chain, then stack based is preferred.
If the start and end are in separate functions, then heap based should be used.