Don't use trials or trial extensions for rental licenses because trials/trial extensions aren't hardware locked (i.e. the data can be cloned to other computers).
What you want to use is a license feature of the Date / Time type. For example "rental_expires". Then, in your app, you can use the GetFeatureValue("rental_expires") and IsDateValid() functions to get the feature and check if the rental has expired.
You can also "renew" rentals by editing the product key (either manually or using the web API). Then, on the customer's end, simply calling Activate() will download the latest cryptographically signed feature values locked to that customer's hardware.
Does that make sense?