Schwab have replied with the following
“You are correct the high was $20.30, but the stop loss order was triggered because the ask price has reached $20.35. Stop orders are base on either the ask or the bid price, not the actual execution price.
Please contact us if you have any further...