Well, we have to understand a little bit about how traceroute works. And part of that will depend on what OS we are talking about!
Micro$oft tends to use ICMP with a variable TTL, so it's JUST like doing a ping. Some devices will filter pings, so you may have a whole slew that simply don't respond.
Unix (and Cisco IOS is a derivative thereof) use a UDP packet with variable TTL. Again, there may be filter issues involved.
Either way though, your interim routers SHOULD see that TTL doesn't allow them to forward and respond with an ICMP - TTL-Exceeded message. If a router/device in the middle has "no ip unreachables" configured, then it will NOT respond, and that's expected behavior.
When you reach the end station, assuming there's nothing listening to the UDP port being used, then you should get an ICMP - Port-unreachable message back and that's how you know it's completed.
If your traceroute properly completed, you'd have it end. The fact that you have "request timed out" messages AFTER you say it completed tells me that it did not properly complete due to some filtering/ACL.