Thank you for responding Jason. I made another specific thread for this piece of the question as well so this single thread does not get cluttered with my thoughts.
I did read that Search must be the first stage in any pipeline. I also read the documentation of how any Filter/Sort should be included in the search stage or it will have significant performance implications. I was also able to confirm this via empirical testing.
I am specifically looking to pass one of the following to the C# driver for search, and it does not seem possible. Thus I would have to create what I need in the BsonDocument format in order for it to be recognized and executed.
FilterDefinition
or
c# linq: Expression<Func<T, bool>>