OnMessage: always defer callbacks to wx's thread

We do this elsewhere, it's necissary because all wx commands must be called from
wx's thread and all twisted's commands must be called from twisted's thread.

Also edit the Sync functionality to use callbacks as it was intended
(rather than assuming 1 second is good enough).