This was mainly to make !1944 (merged) have only async related changes.
I've moved generic fixes to this MR.