Earlier quoted context omitted.
If you have more than 4 months left on your contract, it will be cheaper to cancel it now.
You can often get them to not charge the early termination fee either by either being really deserving-seeming, or being a belligerent asshole (but you have to be consistent). At least with t-mo and sprint, never tried with ATT or VZ.
If you don't have free roaming, a similar strategy might work with unlimited minutes on their own network if you just use enough of them that their costs are too high to support you. If you don't have unlimited minutes, you can probably upgrade your plan, use a ton, then if they try to force you to switch or pay overages, you will likely also have the option to walk away from the contract without a fee.