The handle is not useful outside the context of a running process. You can't magically recover a license lease with a handle.
On real machines this is not a problem. Simply request the lease again and you'll get the same lease from the TFS (it won't use another lease slot).
On fake machines (VMs, containers, etc.) if your app crashes before dropping the lease then there's no way to recover that "lease slot" until the lease expires. Hence following 2 pieces of advice:
1. Use short lease lengths. 30 minutes is the default, and it's a good one.
2. In your app have a crash handler that drops the lease. In other words, have a global "try/catch" block that has 1 job: dropping the lease and continuing to crash your app.