The blog post about migrating to Direct-to-S3 says that although the Design Automation API is not affected, "if a workitem is saved to OSS, the application will need to finalize the upload inside the OnComplete callback."
The step-by-step tutorial on the documentation site doesn't show this. The Direct-to-S3 .NET samples blog post also doesn't mention this.
So far, the OnComplete callback has been an optional feature, and it is not always possible/feasible to implement (e.g. non-public web servers with tight restrictions on port forwarding, reverse proxies, etc). In those scenarios, polling has been an acceptable alternative, but even then, continuous polling has not been required. It seems that with the upload finalization being time-sensitive, we will be forced to either implement OnComplete callbacks or continuous polling in order to finalize uploads within an acceptable amount of time.
Is this accurate? Are Design Automation work items that store outputs to OSS going to require an application outside of Forge to finalize the upload of those outputs in all cases?
Completing the upload is only required when using the Signed S3 Upload endpoint to generate the URLs for Design Automation outputs. An answer from a related question (confirmed in comments on Zhong Wu's answer above) clarifies that the Signed S3 Upload endpoint is not always required for Design Automation outputs being stored in OSS.
If the output files don't need to be in BIM 360 or ACC, the Signed URL endpoint can be used instead, which does not require completing the upload (and also generates URLs that are much shorter).