return Future for the async write so that we can cancel the async write