Я уже реализовывал эту концепцию (объект принудительно наследованный от Object с целью поиметь методы setTimer()), для реализации драйвера сканнера штрих-кодов, который периодически опрашивает внешний COM-объект на наличие свежих данных и всё прекрасно работает.
Твои грабли кажется заключаются в манипуляциях с globalCache - я просто запоминал ссылку на свой объект в классе appl и всё работает без проблем.