Which query performs better in MongoDB ($or or $facet)?
$facet - Index Use says:

The $facet stage, and its sub-pipelines, cannot make use of indexes,
even if its sub-pipelines use $match or if $facet is the first stage
in the pipeline. The $facet stage will always perform a COLLSCAN
during execution.

$or Clauses and Indexes says:

When evaluating the clauses in the $or expression, MongoDB either
performs a collection scan or, if all the clauses are supported by
indexes, MongoDB performs index scans.


And, your query's $match stage:
$match: {
    $or: [
        { type: 'Event' }, 
        { type: 'Task' }
    ]
  }

can be simply written as:
$match: { type: { $in: [ 'Event', 'Task' ] } }

See $or versus $in says:

When using $or with  that are equality checks for the
value of the same field, use the $in operator instead of the $or
operator.

Using the $or with proper indexing is likely to perform better than that of using the $facet stage.