I've run a quick experiment in Postman. Both the Data API and the OData interface requires that you authorise with Cognito. When you do that you receive an ID token. The OData interface allows you to authorise using the ID Token. With the Data API you take an extra step to obtain an API Token. You then use the API token to authorise calls.
The ability to batch processes in OData is intriguing but I don't think it's going to be the best way to handle my situation. To process the records as batches requires that they are transferred as JSON and contained in a change set. The overhead generated by the JSON metadata and the change set metadata adds up. The data set is 2,911,170 bytes as CSV, the JSON and change set boundaries will contribute an extra 16,148,171 bytes. That is generating a 19MB payload from a 3MB data set.