bus: reuse more code
bus: rework synchronization logic

Instead of allowing certain actions fail during authentication and
connection setup, implicitly synchronize on the connection to be set up
completely before returning.
bus: properly verify recursion depth of signatures
bus: validate the hello response properly
bus: fix uninitialized variable