>> "My problem is in writing clean code to manage the activation/deactivation for 1) a PC that is online and can connect to the LimeLM servers and 2) using the offline activation/deactivation files for non-connected PCs. "
Well, you should handle activations using the only activation functions: CheckAndSavePKey(), Activate(). And if Activate() throws an InternetException then you know that the customer is (a) not connected to the internet or (b) actively blocking your app's access to the activation servers.
There's no way to tell which is happening.
So, handle InternetException, and by handle it I mean prompt the user to activate offline: https://wyday.com/limelm/help/offline-activation/
>> "I don't see anything in your code that supports this. Am I missing something?"
You're free to re-write the TurboActivateUnit.pas to not throw exceptions, and instead return the error codes. Neither is "cleaner" than the other. We try to stick to the conventions of the programming language that we write examples for. And the conventions of Delphi are throwing exceptions on errors.