Just in case anyone else is curious, here's what I've done to address this. My product's integrated trial extension request process is now based on offline trial requests. From within the application a user who wishes to request a trial extension is led through the generation of an offline trial request and even the creation of an email to the appropriate address with that XML document as the body. When I receive that request, I attempt a manual activation which results in one of three actions:
- If the manual activation does not show the trial as already expired based on the absence of an existing known trial duration and a field in which to enter the extension length, I instead create a verified trial extension key and send that to the requesting user.
- If the manual activation shows the trial as expired and it's a reasonable request, i.e., either for one additional free trial period or the requesting user has already provided sufficient explanation for why more time is needed (typically due to large company purchasing processes), I create an offline trial extension request for the desired number of days and send that to the requesting user.
- If the user has already had enough trial time and doesn't have a good reason for more, I tell them (politely, of course) that it's time to make a purchasing decision.
For 1 and 2 above, my product's integrated trial extension process accepts either a verified trial extension key or an offline trial extension response XML document as a way to extend the trial.
So again, that's what I'm doing right now (or at least will be starting with the tomorrow's update). I'd be curious to hear if there's a better way to do this, but as stated in the original post above, it seems like with verified trial extensions you lose the total trial time information, and with offline trial requests you can't extend an unexpired trial…a bit of a catch-22.