First of all, sorry if this has been suggested before, I have checked the recent suggestions and the resolved suggestions topic, haven't found this one though.
Currently Scratch redraws the stage everytime loops are restarted. The workaround for that used by advanced programmers is to stack the looping script instead of placing it inside a loop. While this speeds up the project a lot, it makes editing MUCH more awkward and causes Scratch to freeze up while editing sometimes.
In my opinion, there should be a way to create "forever" and "repeat" loops that don't redraw after every cycle. As new block could confuse new users, a right click checkbox for all loop/repeat C-blocks to make the loop faster would be ideal. If a loop is be marked as fast, Scratch would only redraw the stage as soon as the loop exits, or there could be a new block to force redrawing the stage.
The possibilities of fast loops include improved 3D projects, better collision for fast-moving projectiles, paint projects with an undo function... there are so many situations where developers currently have to use giant stacks of blocks instead of simply looping them due to the automatic redrawing of the stage.
I know that this feature is similar to BYOB3's "Atomic" function for custom blocks, but I have not yet been able to successfully create a "fast loop" block. I am also aware that Turbo mode does basically the same thing, however it significantally decreases the project's framerate and can't be toggled inside code.
tl;dr:
Optional turbo/atomic mode for loops.
Offline