Legally, you can issue notice of cancellation for a future date at any time. In practice VM's poor systems only appear to allow you to do that within 60 days of the end date of a fixed term. So you can give notice now (it doesn't have to be exactly 30 days, that's a minimum).
Having said that, as you may already have found, VM operate their cancellation process to even lower standards than the rest of their customer service (if such a thing is possible), and maybe it'll all go smoothly, but there's many reports here of bungled cancellations, long waits, disconnections and outright incompetence.
If you're genuinely looking to leave, then cancelling by post (recorded delivery) is perhaps the best option, since you can specify the end date clearly, and if there's any foul up you've got a copy of your letter and proof of receipt. Be prepared for possible outbound retention deals during the notice period - if these aren't at new customer offer prices, you may be best off rejecting the retention offer. Likewise, plan on the basis that you won't get an outbound retention call, or the offers aren't good enough, so line up your chosen alternative to install say a week before the VM line goes off, to allow for the possibility of delay, and to check that the performance is adequate before you leave VM. If the new line isn't acceptable, then cancel that under your 14 day cooling off rights - if it is, wave goodbye to VM.
When choosing a new ISP, check out Ofcom complaints data.