I have a theory, I'm not an expert in how this all hangs together, I'm going to use the word 'pipe' to describe a backhaul connection, as I'm not sure what correct terminology is, here we go:
It seems the 'backhaul' (what ever that is) could be the bottle neck when running a 'single thread' speedtest, and only seems to affect some users on maybe particular exchanges.
I'm assuming this 'backhaul' is some kind of layer 2 connection from OR at the exchange to the ISP. This could be a big fat pipe (10G+) and/or could be aggregated by multiple pipes (possibly slower 1G?) to achieve more bandwidth. The slower pipes are more that sufficient for FTTC.
When running a single thread connection on a FTTP 900, and if the path is on a aggregated link, you are limited by the available bandwidth on a single slower pipe, rather than being shared across multiple pipes. Or maybe it is shared across multiple pipes but it takes time to reassemble the packets.
I can see the benefit of multiple aggregated links for redundancy, SLA, etc.
As BTw are wholesale, they can afford to put big 'pipes' in, as supporting multiple ISPs so you don't see the issue using BTw as backhaul.
However, in a typical use case of multiple users using multiple devices, these connections would be spread across all of the aggregated links, and would achieve the full connection speed.
So, if you are using an ISP backhaul rather than BTw, and that ISP backhaul is using aggregated links, and you are running a single thread 'speedtest' you will see the issue. The ISP could upgrade the links, but I assume can not justify this until they hit a threshold of FTTP users.
This may also explain why some providers do not sell 900 services in all exchanges, because they don't have fast pipes (yet).
Or maybe I have this totally wrong?