You would like to create a sort of Session CALs using Document CALs? Sounds good.
The User Manager allows you to export a list of assigned CALs, their dates and last usage. Moreover you can let it assign or remove CALs to/from users, and all from the command line.
A bit of glue logic will tie things together and get you the Dynamic Deallocation feature you're looking for.