Where does Android store offline contacts and email account details? Basically, I want to set up a home-rolled sync for these, but I have no idea where they live by default on a CyanogenMod without GApps. Could someone please help me out?
The email accounts are saved in the the file accounts.db under /data/system/users/&lt;userId&gt;/. If you're the primary user, then the userId should be 0. 

You can also consider taking the accounts' backup using Titanium Backup.

Offline contacts are handled by Contacts Storage (com.android.providers.contacts) app and the contacts are stored in its data directory under the file contacts2.db. Your profile details are stored in the file profile.db. Both files are at the location /data/data/com.android.providers.contacts/databases/. I recommend backing up both. 

You can consider Titanium Backup again if you want to backup Contacts Storage app or simply the contacts which it allows you to export using its menu. Although the Contacts app allows exporting natively  all the contacts into a VCF file.