What material are heat bags made of?
The bag contains a supersaturated solution of some salt with a highly negative enthalpy of crystallisation, which could be something like sodium acetate ($\ce{Na^{+}CH3CO2^{-}}$). The dissolved salt would really like to come out of solution but lacks a nucleation site. Bending the metal disk produces a transient site where crystallisation can begin, and from there are chain reaction results, causing all of the solute to crystallise and release the heat associated with this crystallisation.

Your guess regarding the half-dissolved crystals is correct - the crystals that have not dissolved act as seed crystals for further crystal growth. You need to dissolve all of the crystals to prevent the process from spontaneously reversing.

Despite the popularity of this kind of reaction for modern self-heating food/drink packaging in Japan, I suspect the discovery of this kind of reaction is lost to antiquity, as for instance sodium acetate can be made by simply mixing salt and vinegar. I recall reading that the highly exothermic reaction of calcium oxide and water was used in self-heating cans of food back in World War I.