Fixed #20897 -- Asymmetrical cursor creation

Pulled the creation of cursors in the non-debug case into a separate
method, in order to make behavior more consistent when overriding
the cursor creation in derived classes.