Perhaps if everyone there clearly understood what customers were asking for this issue wouldn't arise? Having read a great many similar comments on the like of Trust Pilot, my experience is not uncommon.
I am old enough to remember when Virgin was a premium product, now, alas, only the cost is premium.
You are correct in that the contract does not auto-renew but, your customer service teams do make it very difficult for customers to stop it moving into a non discounted monthly term (it happened to me many years ago and I had to pay an exorbitant fee for a service I didn't need as I phone one day too late.
If you cannot offer a 'do no provide a service beyond my contract button' option on sign up, at least when reminders are sent out about the imminent end of a contract, give customers an easy option then to stop it happening. We have the right as you clearly stated and it should never be this difficult.
As I explained way near the top, many of your agents insist customers can only contact on just one day. In my case, it had to be June 3. They wouldn't accept a 'do not start a rolling contract' instruction as they said it was too early before the 3rd and, one day later and I would be forced to pay a huge fee for an extra month. That is not really on. I had explained that I wasn't available to contact anyone on June 3, indeed, none of that week. As it was proven, I should have been given the option at any time in a 60 day period to stop it 'rolling'
Why am I messing with words, it is auto-renew! You automatically renew a slightly different contract for the same service at heavily inflated prices. All you do in the initial contract is hide that customers who are not as stubborn as me, get to pay more likely for a service they no longer want or need. You create customers who will never return except, like me, when you were absolutely the last choice I had at the time because of a technical issue with my property (now resolved)