Something that needs to be fixed in SyncEvolution is the error handling once syncevo-dbus-helper executes the failing libebook code. I tried it the same way as you did and see a similar deadlock in the SyncEvo::LogRedirect::process method.