Toss together onion, 2 tablespoons of the oil, vinegar, ½ teaspoon of the salt, and ¼ teaspoon of the pepper in a medium bowl.
Cover and chill until ready to serve.
Heat a 12-inch cast-iron skillet over medium-high.
Season steak all over with 1 ½ teaspoons of the salt and ½ teaspoon of the pepper.
Add 1 teaspoon of the olive oil to skillet; swirl to coat.
Add steak and cook, undisturbed, until a brown crust forms, about 5 minutes per side.
Transfer steak to a cutting board, and let rest 10 minutes.
While steak rests, stir together lime juice, orange juice, soy sauce, chopped serrano, garlic, remaining ¾ teaspoon salt, ¼ teaspoon pepper, and 1 tablespoon olive oil.
Reserve ¼ cup marinade.
Slice steak against the grain; transfer to a baking dish and pour remaining marinade over steak.
Cover and chill for 1 hour.
Remove onions from pickling liquid.
Remove steak from marinade, and transfer to a serving platter.
Drizzle with ¼ cup of the reserved marinade.
Garnish with pickled onions, avocado, and sliced serrano.
Sprinkle with flaky sea salt.
Serve with tostadas.
