The ParseOptions returned from SyntaxFactory.ParseCompilationUnit("", options: options).SyntaxTree.Options are the default parse options, not the options passed to the ParseCompilationUnit call.
Workaround:
var unit = SyntaxFactory.CompilationUnit();
unit = unit.SyntaxTree.WithRootAndOptions(unit, options).GetRoot(cancellationToken);