Note that the license does not show as being activated on the online dashboard.
OK, so you deactivated the license (or the customer did) and now the deactivation is being reflected on the customer's computer. That's what LimeLM is supposed to do.
2. But the next time the program is run, IsGenuineEX is returning TA_FAIL.
Right, because they're not activated or they passed nDaysBetweenChecks + nGracePeriodDays amount of time.
1. Sometimes, IsGenuineEX is returning TA_E_INET. Is there a way to check what's going on?
It just means TurboActivate couldn't contact the activation servers. There could be thousands of reasons why this happening.
Could it be that their company firewall is blocking the software?
Yes, that's one possibility.
How can that be resolved?
It depends on how they're blocking the connection. More information is needed.
Note that GetFeatureValue(...) and IsDateValid(...) seem to be working ok following the return of the TA_E_INET code. Don't those functions need connection to the internet?
No they don't.