IBatcher.AddToBatch need to be async + Flush

Flush also need to be corrected to handle all parts as async
Return Task instead of null