I have seen in the code, that Window.initTools() is called during onRender(). Which is the earliest time, I can access Window.getHeader().getTools() and the call will not return an empty list? I have tested it with Events.Attach, but is it possible to get the information before this event?
At the end of render (which calls onRender), an Events.Render should be fired, indicating that the widget is now rendered. Attach fires every time the widget is attached to the document, which could happen multiple times. From my quick read of the code, I'm not entirely sure why the tools list isn't init'd before Render, but at least from a semantic point of view, Events.Render is more correct here than Events.Attach.