So, I finally found an open source groupware server setup I can manage to sync successfully OTA with the n900. Zarafa, plus Z-Push (which provides ActiveSync connectivity for Zarafa), does the job. I can then use the n900's Mail for Exchange thingy to sync with the server.
The hilarious catch? You can't actually sync Evolution with Zarafa. Zarafa is designed to be an Exchange replacement. Evolution has two Exchange plugins...but because of arcane details about protocols, neither of them works with Zarafa. Zarafa does have CalDAV support for the calendar, but not apparently for contacts. So I guess I can sync my calendar between my phone and my PCs, but not contacts.
Really. Please. Someone. Just shoot me now. Why does this have to be so fricking hard? We have about sixty zillion groupware solutions, and a cornucopia of protocols, but somehow no one can line things up right so you can set up an open source server to sync open source desktop and mobile clients. REALLY?
edit: seems Zarafa is working on carddav support. Please, let it be soon...