There are a few questions here, that require different knowledge to answer. I am not a MongoDB expert, but do know my way around Axon, being the founder.
The MongoEventStore
in Axon doesn't natively support multiple collections for the domain events. So the answer to your order preservation query is: it won't work, unless you build support for it yourself. And then the order is guaranteed depending on how you built it.
You can also consider sharding the Mongo Collection. Using the aggregate identifier as shard key will allow you to guarantee that queries for an aggregate stream hit a single shard. According to the documentation, it is recommended to avoid queries that do not include this shard key.
The best approach to dealing with this performance issue, is to do a performance test. See how latency and throughput are affected as the size of the collection grows. Adding the right indexes may help.