I used to get at least 21.5 meg downstream speed with O2, with no dropouts, with help from SNR adjustments made via my Billion router (this doesn't work with Sky). I have a quiet, stable line, I am less that 3/4 of a mile from the exchange, and I recently had an Openreach engineer check and refurbish all my household wiring and equipment.
The way Be and o2 worked was they set a noise margin of 3db, 6db or 9db etc. Say you had a 6db noise margin set, when you rebooted the router it would sync at a speed that yielded a 6db noise margin.
If you manually adjusted this on your router, so that now the target was 2db, it would sync faster and now with a 2db noise margin. Hence you could do SNR adjustments with your billion router to get better speeds.
This isn't how every ISP operates unfortunately. Like you have seen Sky does not work like this.
What Sky do is they run line management. They usually start you off at 4Mbps. If this is stable they then try a little faster. Eventually you will reach your 18.5Mbps. They may then try 20Mbps, if this has error build up or drops out they will drop you back down to say 18.5Mbps.
Say 18.5Mbps was the fastest speed that didn't have too much error build up, Sky now FIX this speed as the MAXIMUM speed you can ever sync at.
Usually this sync speed coincides with a 3db, 6db, 9db or 12db noise margin. So the most stable lines will get a fast speed set and will get an SNR around 3db.
The point is you can never sync higher than this speed set, not even with router tweaking because it's not a SNR target anymore, it's capped based on the sync speed. That's how their line management works.
This means most sky lines always resync at a very similar sync everytime and speeds don't vary too much.
If you can post up your line statistics we can see if there's room for tweaking.