Appreciate you weighing in. I had a chat with my team earlier and ended up leaning more towards the Step Functions as there's a lot of baked in error handling, retries, etc... which this particular service will need to have implemented.
Annoyingly we need to push data to S3 due to potential file size concerns, otherwise I would've swayed more in favour of EventBridge using the outbox transaction pattern. Still would need to roll our own retries/error handling solution but I guess I'll play aroud with something in that area at another point 😂