Ну это быдлокод какой-то, имхо. Забивать память заранее функциями с заранее указанным разным setTimeout... А если у меня количество items будет 10000? Я не думаю, что это разумный способ решения задачи.
В чем адекватность этого подхода? Просто мне кажется, что разумнее все же было сделать какую-то обертку над inst = {token: '...', data: {...}}, чтобы изначально там хранился наш текущий токен, а потом уже пушить в inst.data необходимые данные и весь объект inst пробрасывать через socket.emit('tick', inst);