recovery: merge: make read-write cycle async

We still block on .wait() at each iteration to not cause memory bloat /
overload of backend servers.
recovery: dc2: fix exit code of main()

Pointy hat to: me (rbtz@)
recovery: print rc in log