Ok, I ended up overhauling my script.
I have a large number of edgeloops I was attempting to scale down. I was originally doing this by selecting the verts, applying an xform modifier, scaling the gizmo, collapsing the stack, selecting the verts in the next edgeloop, and so on. This required the modifier panel to be open, and thus, was slow.
Instead, I now just directly translate each vert in an edgeloop through PolyOps.
Even with redraws on, it is now blazingly fast.