Hm other things that are unoptimized, working on them now:
1. every time I call for a canvas redraw, I ask for every node to be iterated. I should only request that children nodes that are on the screen be iterated. This doesn't help if there's 100 nodes on-screen, but does help when the editor is properly used, i.e. there's about 20 nodes on-screen.
2. each time I make a change, I make canvas reposition itself at the topLeft viewport. Maybe that takes a lot of processing power?
I also resize the canvas to WindowWidth/ layoutScale and windowHeight/layout scale, so that it's always as large as the window, regardless of zoom level. Maybe that's very calculations-intensive as well?
EDIT: The exact same thing happens with Paster, no improvement. Canvas isn't to blame.
When I remove all Text objects, also no improvement.
I think I may be making some rookie mistake with loops, or referencing objects that are off screen? :S
I don't get where all the collisions are coming from either, since collision checks are very strictly defined, and I've disabled most objects' collisions. Made all the optimization I knew how to make, updated the above CAPX file. Still, nothing.