The change made here to not monitor the `Pid` and not carry a ref in the `resource_entry` record allows a process to obtain more tokens per period than the limit. Looking at the final state of `background_mgr_table`, in the EQC output below, this is because the `resource_entry` for separate `get_token` token calls from the same process (or for the same given pid) is no longer unique. One fix would be to use `duplicate_bag` but I think that may open up a whole new can of worms. I would just create a dummy reference instead and stick it back in the call to `give_resource`.

EQC Output:

```
Shrinking.......(7 times)
[{set,{var,2},{call,bg_manager_eqc,set_token_rate,['C',2]}},
 {set,{var,6},{call,bg_manager_eqc,get_token,['C']}},
 {set,{var,8},{call,bg_manager_eqc,get_token,['C']}},
 {set,{var,12},{call,bg_manager_eqc,get_token,['C']}}]


Final State:
---------------
procs = []
limits = []
locks = []
---------------


background_mgr_table:
---------------
[{{given,'C'},
  {resource_entry,'C',token,<0.2327.0>,[],undefined,undefined,given}},
 {{info,'C'},{resource_info,token,{4294967,2},true}}]
---------------

bg_manager_eqc:set_token_rate('C', 2) -> 0
bg_manager_eqc:get_token('C') -> ok
bg_manager_eqc:get_token('C') -> ok
bg_manager_eqc:get_token('C') -> ok

Reason: {postcondition, {2, 'not <', 2}}
```