Downloaded; I'll look into this. Calling extension functions from GMLive can be problematic, as per documentation.
So far I was only able to get this error, which is "breakpoint triggered" originating from GameMaker code and going into a Windows DLL. The error does not come from the cursor DLL as such (you can verify by adding show_debug_message before/after window_set_cursor_* call).
It is unclear as to what does "HEAP: Free Heap block %p modified at %p after it was freed" have to do with changing a cursor, but if you can figure out a more reliable way to reproduce this (perhaps the order of changing cursors..? Or an interaction between using buffers/surfaces with some other GM functions), I could debug this better or send YYG a bug report.
Ok, this dll error is beyond my programming capabilities. But I managed to recreate the crash in a blank project (should have made this earlier, sry :/) where I randomly switch between 3 cursors every frame. Here is the project link: https://we.tl/t-icLAzvuNz5. Unfortunately it can again take some time until it crashes. But it at least eliminates the possibility to have something todo with my surface/buffer shenanigans.