Sorry - this wacky editor on SCN is giving me fits on cut & pasting....will try again...
What you might want to do is look at monProcessWaits before/after the update stats - if you see most of the time is on WaitEvent=29 or 144, then the time is all spent on IO and not a lot can be done about it other than speeding up the IO subsystem (compare WaitTime to Waits to get ms/IO)...
It is also possible that the particular table only has low domain values which doesn't require a lot of tempdb space necessarily. The real gains I noted was when the tempdb space was reduced - e.g. if you set statistics on, check out the drop in writes.....if not that much, then that is why no real gain - and likely low cardinality attributes....(or else someone did stats hashing by default - make sure you test with no_hashing and not just defaults as it could be inherited as well as set via sp_configure)....