ok... i managed to get around it....
the culprit is actually TF_SaveServer
If there is already an existing lease, calling this function again will cause the problem I described.
My solution is this... I added a check to see if lease exists, if it does, I just return from my regular license check function.
hr = TF_HasLease(tfHandle); if (hr == TF_OK) { return; }