I think I may have found the primary culprit in the stringing and blobbing - the part cooling fan wasn't running
If I print from the SD card, it runs fine - spins up while the warming cycle begins and continues spinning throughout the print, resulting in much, much less stringing and regular looking parts (still some stringing, but I'd gone back to "default" settings for this test).
If I print the
same gcode from OctoPrint, the fan spins up while the warming cycle is going and then the instant the head starts moving .. the fan stops.
Googling around, there's lots of other people reporting the same thing with various causes - some people have had driver boards fail (but then surely it wouldn't run printing from the SD card), others have noted that using auto levelling fixes it (I'm using just manual levelling right now).
Very odd, that the same gcode one way works fine but another (streamed over USB) doesn't, which implies a firmware problem to me. The firmware is open source so technically I could go digging.. but y'know, I just wanted to print some stuff