Hey Matt,
What is the best way to go about this? I am thinking along the lines of an automated registration form, which simply sends a license key back by return to their specified email. The easiest way for me to implement this would be to create a single key with a large amount of allowed activations.
You're right about the form asking for an email, but you shouldn't just use a key with a large number of activations. Just create a new key on every new trial request. (You can use the web API to do this).
Do you see a problem with this approach
No, this sounds about right.
and what (if any) is the way to handle the granting of extra features for a set period of time, somewhere down the track.
You can use custom license features (a.k.a license fields) to do that. See the first example on that page.
Tell me if that helps.