Hey Adam,
Step 1: Use the latest TurboActivate.
Step 2: Correctly handle TA_IsGenuineEx() return codes. Namely, TA_FAIL. This is covered in every single programming language example and article. For example, here's C/C++: https://wyday.com/limelm/help/using-turboactivate-with-c-plus-plus/#handle-isgenuinex-correctly
Step 3: Don't do a heartbeat check on every startup or even every day. A good default for nDaysBetweenChecks and nGracePeriodDays 90 / 14. Or, if you want to check often 7 / 7.
Don't use 0 or 1 for either value.