Traceroute is normally working over UDP. Using -T option you are using TCP SYN instead.
If you look in the traceroute's output you will see that after hop 3 the router there is doing loadbalancing of the traffic. So part of the packets are going one direction, part of them to another. We can imagine that one of the ways out is via ISP1 and the other one is via ISP2. As result hop count is different.
By default traceroute is executing 3 queries to every single hop in order to explore every single possible exit on every single router on path. However I can't explain how it is working when TCP is used. In my opinion -q is not applicable for use together with TCP.
At least when I tried it was working very very strange:
[host]# traceroute -T -q 3 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 40 byte packets
1 xe-5-3-2-129.ams-koo-score-2-re0.interoute.net (195.81.166.12) 0.163 ms 0.150 ms 0.146 ms
2 ae0-0.ams-koo-score-1-re0.interoute.net (84.233.190.1) 0.232 ms 0.230 ms 0.234 ms
3 * * *
4 * * *
[host]# traceroute -q 3 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 30 hops max, 40 byte packets
1 xe-5-3-2-129.ams-koo-score-2-re0.interoute.net (195.81.166.12) 0.157 ms 0.239 ms 0.233 ms
2 ae0-0.ams-koo-score-1-re0.interoute.net (84.233.190.1) 0.187 ms 0.206 ms 0.202 ms
3 72.14.217.96 (72.14.217.96) 0.700 ms 0.697 ms 0.706 ms
4 209.85.143.251 (209.85.143.251) 1.188 ms 1.258 ms 1.415 ms
5 209.85.241.21 (209.85.241.21) 1.345 ms 1.270 ms 216.239.43.146 (216.239.43.146) 2.749 ms
6 66.249.95.239 (66.249.95.239) 4.273 ms 216.239.49.39 (216.239.49.39) 5.054 ms 216.239.51.17 (216.239.51.17) 5.191 ms
7 209.85.255.51 (209.85.255.51) 4.636 ms 4.627 ms 216.239.56.83 (216.239.56.83) 4.573 ms
8 google-public-dns-a.google.com (8.8.8.8) 4.480 ms 4.454 ms 4.449 ms