Hey John,
First, is grace period tied to each license or to the machine?
The grace period is tied to the machine.
Then some time later (say two months), while offline, I attempt to activate with a different key, should my grace period be expired?
The grace period starts the first time GracePeriodDaysRemaining() is called. The grace period expires at the end of the length you set (whether the user entered a license or not). So in the example you gave the grace period will have already expired.
Also, is Grace period cumlative?
Nope, it's sequential.
Just as a general note: we almost always recommend using trials because there is much more flexibility (you can extend trials, etc.). Quite frankly, the grace period system was poorly planned.
Does this help?