If Swype tried to get your location every 20 seconds on purpose, it would drain you battery within a few hours.
Accessing GPS every 20 secs just can't be what they had in mind when they implemented it. (not even in case it fails, because it would prevent the CPU from going into deep sleep, which saves battery)
What I believe is happening:
The developers of Swype didn't test for that error, because Google Play filters the app for all devices that don't have GPS, so the device is expected to have the hardware and to return some specific error in case it doesn't work (GPS turned off and so on)
And the CyanogenMod privacy feature interferes in a way, that causes an unexpected error that they didn't account for.
Combine that with the lack of an exponential backoff and you'll get this result.