PID, as ma femme suspected) and a new brewstand re-purposed after updating the shelves in our kitchen to something a little more NSF compliant. Control panel is hung, pumps have a dedicated place to sit, and the whole thing just seems more like it belongs. Like it is a complete unit, and not a bunch of pieces linked together with wire and hose.
I did a test run with plain water today, just to iron out the kinks and see where I need to lengthen or shorten a hose. Or maybe where I need to add one of my limited number of quick-disconnects. And how many more quick-disconnects I need to add to that limited number. The system performed well, with the critical "end-of-mash-to-start-of-sparge" time around 15 minutes and "element-covered-to-full-boil" time around 20 minutes. Since this was a no-grain run, it was never limited by pump speed, so I'll bet I can be at a boil before I'm even done sparging an actual batch. There is very little fumbling around to figure out what to move when changing modes, so we are homing in on an ideal (to me) setup.
I need to add a quick-disconnect for sure where the wort leaves the counterflow, to facilitate the transition from circulating mash to sparge. I was going to skip this as a theoretical exercise in today's test, but I'm glad I didn't since it was one of the most awkward parts of the run, and can be easily remedied. All in all, we are in a good place. Next week is go-time for Cantillon Clone 0.9.