Added a stack of debug labels off to the side of the screen so I can see the data that's getting used for current value calculations and while I still don't like the algorithm that's being used, I'm less confident that it's the source of the problem I've been noticing now that I understand the data flow a little more fully. Still, I'll take a look at that on my next roasting session and see if I notice anything.
I think I've figured out how to express what should be a more robust approach as well, so maybe I'll let the device run and display the results from both algorithms and see if mine really is an improvement. If it is, I can upstream that. If it isn't, well, I'll have learned something.