I transfered all of my domains from Godaddy to Namecheap.com I couldn't transfer my country specific domains like .de and .in and they seem to have only a sub-set of TLD's godaddy supports.
The doctor has to cause some pain and cut out some good stuff when taking out the brain tumor. Likewise the cancer in the Internet needs swift action to cut it out.
If only namecheap had automatic renewals without having to first put in funds (via paypal). That's the one thing I like about godaddy.. (they charge your cc)
Godaddy already has my money and moving off them would only reduce their load in an insignificant way. More important, I won't create any new domains there and will move the ones still with them to a competitor as the contracts expire.
You don't have to wait for the expiration to move a domain. When you move it you get one year added to your existing expiration date, so you loose nothing by transferring early.
My business domains are for clients. I do not renew them unless the client wants to. So doing a bulk renew on domains that might end up unused is not something I look forward to. I think, like the OP, i will wait till contracts expire to move them, just like I did with hosting.