You can implement this easily by using the "Application Agility" User-defined variables for an LC, profile, or for the Product (for trials).
You can set up a variable to hold the “Grace Period”, then use this value on the client side to avoid hardcoding; this will allow you to change the value on the fly and have different values for each LC, profile or product.
So add a new AA Variable for the Product, say called "grace period", then set this at the product level for Trials, and/or individual license codes. These values can be updated via Webservice calls.
Use this value client side via the filechk API to determine the runnable “grace period”. This can be changed on the server, and the next time the client refreshes its license (NSLGetLicense) it will be applied to the client.
More about Application Agility below:
https://support.nalpeiron.com/hc/en-us/articles/360005310893