bus->listen() and the controller wrappers accept a timeout to wait for callbacks