Consider the following:
1. _originalOutOptions field is set to an empty object, because collection doesn't exist (yet): https://github.com/mongodb/mongo/blob/c675b7164d26faa943f7ff576b3be102a239d927/src/mongo/db/pipeline/document_source_out.cpp#L293
2. Another thread creates the output collection.
3. We get to this check: https://github.com/mongodb/mongo/blob/c675b7164d26faa943f7ff576b3be102a239d927/src/mongo/db/pipeline/document_source_out.cpp#L230
Our targetTSOpts because it is based on now outdated _originalOutOptions AND getCollectionType will return that collection now exists.
This causes uassert to fail.
As we allow other multi-threading issues