Anything that you do using TCL will be very slow when compared to native tool analysis. TCL will do multiple function calls whenever you issue a get_attr, whereas the native tool just need to access a pointer to the structure, if you know what I mean.
Whenever I need to do my own parsing of some internal data, I try to make the tool report as much as it can before I have to start issuing specific get_attr on individual structures. That's my only tip, try to start from a better report_timing, showing slews and arcs already, then take it from there?