Thanks, you're right - it seems OK in Pronterface, so I can use that for hand-tuning the heater. Strange that only M307 seems to be affected, perhaps something to do with Octoprint's temperature polling.