Resource Lifetime
When we allocate resources on a pool, we ensure they get cleaned up
at some point. But when? We need to ensure the cleanup happens at
the right time. Neither while the resource is still in use, nor
long after it is no longer required.