If you want to completely avoid exchange fees, your standard option is the official Optimism gateway. You can just route your funds through their native system directly to your mainnet address. The major downside there is the mandatory challenge period, meaning your ETH gets locked up for a full seven days before you can actually claim it. It works fine if you are not in a rush, but it definitely sucks if you need the money right now to pay someone else.