If necessary, use a meat mallet or a rolling pin to pound the meat to an 1/3-inch thickness. Pour the oil into a large heavy skillet, preferably cast iron, to a 1/2-inch depth. Preheat the oven to 200°F (for keeping the steaks warm while you make the gravy), and place a wire rack in a rimmed baking sheet. Line a large plate with paper towels.
In a wide shallow bowl combine the eggs and the milk. In another wide shallow bowl, combine the flour, 1 tablespoon salt, garlic powder, and cayenne.
Heat the oil over medium-high heat until it measures 375°F on a deep-frying/candy thermometer. If you don’t have a candy thermometer, heat the oil until it shimmers, and test it by dropping a small lump of the egg mixture mixed with some flour into the oil. If it starts gently sizzling and turns golden brown after a few minutes, the oil is at the right temperature.
While the oil heats, place each steak into the flour mixture to coat. Shake of any excess flour. Dip the floured steaks into the egg mixture, turning to coat evenly. Allow any excess to drip back into the bowl. Dredge the steaks one more time in the flour mixture, and place on the wire rack. Repeat until all of the steaks are breaded.
When the oil is ready, fry two steaks at a time (more if you have a very large pan) for about 2 ½ to 3 minutes per side, until the crust is brown and crispy. Use tongs to flip the steaks, and when cooked to transfer them to the paper towel lined plate. Let sit for a few seconds, then transfer to the wire rack. When all of the steaks have been fried, transfer the baking sheet to the preheated oven to keep the steaks warm.
Pour off all but 3 tablespoons of the pan drippings from the pan and return to medium heat. Add 3 tablespoons of the leftover dredging flour mixture to the drippings. Whisk until the mixture turns a rich golden brown and starts to bubble, about 3 minutes. Remove from the heat and gradually add the milk, whisking constantly. Add the onion, if using. Return to the heat and whisk frequently until thickened, about 5 minutes. Taste and add salt and pepper to taste. If the gravy feels too thick you can whisk in a couple of tablespoons of additional milk or hot water.
Take the steaks from the oven and place them on plates or a serving platter. Serve the gravy over the top of the steaks, or pass it on the side.
Notes
The most common cut of meat used to make this steak is usually a cheap one, like cube, round, chuck or Swiss. You can use a fancier and pricier steak, but because this dish is as much about the crust and the gravy as it is the meat, I would save those more elegant steaks for simpler preparations.