I found the source of the problem, and should be able to put out a fix today. There was some errant code in the flame pit that was directly changing the health of a component every tick, rather than going through the takeHeat() method.
We're still in the process of reworking damage, and this was a super-helpful catch. Thank you!