Вероятно, я бы попытался обобщить какую-то шину данных, если это возможно, и когда объекты «активны», они должны добавить себя в список объектов, которые будут обновлены. Особенно мне хотелось бы использовать этот шаблон, если объекты поддерживаются базой данных, так как таким образом вы можете агрегировать несколько запросов, вместо того, чтобы выполнять один запрос для каждого объекта.
Если в конечном итоге не будет прослушивателей для конкретного объекта, ничего страшного, данные просто никуда не денутся.
Код ядра обновления может затем использовать один таймер (или несколько, или все, что подходит), чтобы определить, когда получать обновления. Выполнение этого в виде большего потока данных и меньшего количества «обновления состояния», вероятно, сохранит много здравого смысла в конце.