Hi Gary,
thank you very much for your logfile, that is good data!
To make it short: you are right, SGP uses an algorithm for temperature compensation that yields totally wrong focus corrections. The SGP algorithm works as Ken described it. This means:
if the temperature change between 2 frames is small enough, it may happen that SPG does not correct for it at all. This will result in a considerable amount of cumulative error over time if it happens every once in a while.
I carefully analyzed the data in your logfile from 18:50 till 20:03, extracting the relevant data (time, temperature and focus position), transferring them into a spreadsheet software and calculating the “true” focus position according to the temperature. The result is best illustrated by the plot:

The correct algorithm for Temperature compensation is:
fp(T) = fp(T0) - c * (T - T0)
(There was a sign error in the equation I gave previously since (by convention) a negative temperature coefficient means that the focuser must be moved inwards as temperature drops.)
I noticed that you already put a Feature request about this issue Temperature Compensation Fix - Feature Requests - Main Sequence Software and I will second that.
Additionally I would like to put another Feature request related to Temperature compensation: it is not wise to execute each correction when the change is only 1 or 2 steps. The user should be able to define a minimum deviation between current focus position and calculated focus position. (This threshold is related to the Critical focus deviation (CFD) of the scope.) A correction shall only be applied if this threshold is reached or exceeded. This proposal is related to, but not identical with an older Feature request, see Temperature compensate tolerance - Feature Requests - Main Sequence Software . The reasons why one wants to have such a threshold are given in that FR. However, to my opinion it is not wise to take temperature change or time for that threshold. The number of steps would be a much simpler and better criterion. What do you think about that?
Bernd