Als kleiner Tipp: Es gibt sehr gute Implementierungen der ganzen Sache (also Obersever Pattern und Iterator Pattern) mit einem größtenteils sehr einheitlichen Interface:
http://reactivex.io/
Leider ist hier (noch?
) keine Bibliothek für Delphi dabei.
Aber auch wenn ich es jetzt gerade nicht geschafft habe Dich zu überreden diese zu erstellen *g*, so empfehle ich auf jeden Fall, dass Du Dir dort mal anguckst, wie das in anderen Sprachen realisiert wurde. Rx hat sehr viele Anhänger, und aus meiner Sicht nicht umsonst. Damit zu arbeiten empfinde ich (zumindest in C# und JavaScript) als sehr angenehm.
Von daher lohnt es sich auf jeden Fall mal, sich das mal intensiver anzuschauen und sich ggf. von dort inspirieren zu lassen, bevor man sonst eine eigene Lösung ohne diesen Input baut, die dann sonst möglicherweise Schwächen hat die Rx schon an anderen Stellen ausgemerzt hat.