Very old, boring, retail trader/investor here. I'm going to share what I have seen (and asked both brokers in different ways), what is happening.
I have accounts (including Roth IRAs) at Schwab and Fidelity.
First Schwab...They are a "free" broker who makes good money from MMs for PFOF. They will not give me a choice of exchange or market. You get good (hand holding) customer service from them...But at a price (them using PFOF). You could go for an active trader status and get better fills. This is for both stocks and options. I won't comment about the TDM buy. I also own stock in Schwab...But that's just a choice I've made.
Fidelity is a little different puppy. They won't give me a choice on which exchange I can buy or sell stocks. They do PFOF for the buys and sells. They also have good customer service.
I believe both Schwab and Fidelity will hand the buy/sell to the MM before they go onto an exchange. The MM will either accept it (fill), or send it on. You can get price improvement for all of these. Tell me if I'm wrong, but I believe all buy/sells will at least show up (for a millisecond) at an exchange...Then back to the broker.
Fidelity does offer a choice for which exchange you wish to route your options. I (many times) will go back and forth with an illiquid option between the CBOE and Fidelity's routing. Many times I will get price improvement with Fidelity's routing. This is manual trading and is very slow. With Fidelity options, I have to manually remove the potential option (cancel), then resubmit with a different routing I choose.
One time I spent about an hour trying to get price improvement for a slow option (ETFs). I could have used my time more wisely for the headache...
With retail brokers, I believe the MMs see first and then MAY send to a market.
Talking with one option person at Fidelity, he said the will HOLD my offer at their location. If someone reaches my price (options), I will get a fill...Including price improvement.
That's how I see it...I may be wrong is an area or two. I'm sure others will let you know where I may/could be wrong.