Using database logic I guess...
You store a key to the timer. The key represents an entry in some other data storage structure which has all 3 pieces of data you wanted attached.
A simple 1 to 1 data relationship, you could even store the timer with the data so you can easilly traverse the relationship in both directions.
As for how to set this up, well as long as you remove all traces of each entry as they are done to prevent leakage, you could even use nested data tables. Data table1 stores a key to the timer. Data table2 stores the data to a key.
For example, the first instance would store 1 to the timer in data table1. In data table2 it then stores eff_timer as 1a, dying_unit as 1b and killing_unit as 1c (key + letter). As hashtables function in such a way that recycling index is not important, there is no need to recycle keys thus you can simply use key = key+1: for the next key.
This method provides infinite scalability (you could have 1 or 100 timers allocated and no extra address space would be wasted and left unused) with near constant performance demands (near O(1) from the hashtable mechanics). The problem is it is quite slow each recall however if you do it very rarely (atmost a couple times a second) it should make no difference.