Does it reach 10000 (100%) at around 70 degrees, not 90? 45/.65 = 69, and 30/.44=68, which implies the limit is more like 69 degrees.
Does the output increase continually from 0 to 90 degrees? Or jump back down to a lesser value on occasion? If so, it might an integer wrap-around, caused by a byte ordering error, 8-bit limit, etc.