Since changing to GObject based code for the task-manager (what keeps track of open windows) & task (a representation of on window on the bar), I can say that Awn feels much more resilient! Especially when opening and closing lots of windows. I am experimenting with the idea of the bar knowing when you have opened lots of windows, and therefore skipping the effects, to make it feel slightly faster.
Each 'Task' is actually a GtkDrawingArea, which is then made transparent, and the Task's icon is drawn onto it, using with necessary padding for the effects. Speaking of effects, moving to Cairo for the rendering is allowing much more freedom regarding what effects you can do. I will be demoing some ideas later on, but for now:
This is the current open and close effects, the idea being that the icon 'pops' in at the bottom of the screen, and then 'evaporates' away when you close the window.
P.S. Excuse the jerkiness and the redrawing you can see of Gtk, lets just say I am not developing on the fastest of machines, just be sure that it is not as jerky in real life!