It's surprising what can be acheived with a solid weekend's worth of hacking. The Opie plugin for OpenSync now syncs contacts, todos, and events. I still need to sort out categories, alarms for events, and a few other fields, plus improve robustness (improve error handling, etc.). Still, it's getting towards the point where it will actually be useful.