add conditional check to error logging
prevent double finishes
cancel asynchronously
schedule multipart body streams on the main run loop to prevent a deadlock