Hyperthreading (SMT) is the most fruitful vector for side-channel leaks because so many processor resources are shared between the threads. This was the case even before Spectre.
Conceptually it's also the easiest vector to mitigate in the OS--simply schedule processes in different trust domains (e.g. different UIDs) on different physical cores. This is what good VM hypervisors do. You'll never be scheduled on a physical core in parallel with another AWS tenant, which is why the minimum vCPUs on AWS is always 2. But traditional kernel schedulers (Linux, macOS, Windows, et al) and user space APIs for this mitigation are still nowhere in sight.
Here's a good paper (pre Spectre) that surveys various timing attacks and how they relate to specific architectural features: Qian Ge, Yuval Yarom, David Cock, and Gernot Heiser, "A Survey of Microarchitectural Timing Attacks
and Countermeasures on Contemporary Hardware", https://eprint.iacr.org/2016/613.pdf.
Conceptually it's also the easiest vector to mitigate in the OS--simply schedule processes in different trust domains (e.g. different UIDs) on different physical cores. This is what good VM hypervisors do. You'll never be scheduled on a physical core in parallel with another AWS tenant, which is why the minimum vCPUs on AWS is always 2. But traditional kernel schedulers (Linux, macOS, Windows, et al) and user space APIs for this mitigation are still nowhere in sight.