I've been working with the AbstractComponent base class for about a week or so and it seems to be working out okay so far. Along the way I've moved some things around, added some more comments and cleared a bug in the suspend resume system. I've revised the code in the earlier posts to reflect these fixes and updates. Once all the features are in and it's looking stable I'll put a demo together with some source code.
The two big features I'm keen to add next are support for managing children and granular invalidation. These could both get quite complicated so I might try out a few ideas for posting those up. I have an idea at the back of my head to spin off the state management into a separate manager class that is included in the base class using composition. It will make the base class a bit cleaner.