When I execute the code, the display stays, the cursor disappears during the execution and reappears after 1'07". No crash, no error.
I can't understand that ... I already checked the ROMs that you dumped, and there are clear indications that the screen blanking is done the same way - by setting CRU bit 0 at address E00E to 0. And you noticed that during cassette operations, the screen is blanked, so it should work in principle. Are you sure there are no typos?
The first bytes represent the commands
LI R12,>E00E SBZ 0 ...
I can only imagine that the program is trashed by some system activities. Maybe you can try to peek the values again. Also, I assumed that in your case, the interrupt is off, as I saw in the MAME debugger. We could try to add a LIMI 0 to the beginning: 3,0,0,0.