Pat the cube steaks dry with paper towels. If needed, lightly pound them to ensure an even thickness.
In a shallow dish, combine the flour, salt, garlic powder, onion powder, paprika, and black pepper.
In another shallow bowl, whisk together the eggs, milk, and optional hot sauce until smooth.
Dip each steak into the seasoned flour, making sure both sides are covered. Then dip it into the egg mixture before returning it to the flour. Press the coating gently onto the meat so it sticks well.
Pour about ½ inch of vegetable oil into a large skillet and heat over medium to medium-high heat.
Working in batches, fry the steaks for about 3–4 minutes per side, or until the coating is crisp and golden brown and the beef is cooked through. Transfer to a wire rack or paper towel-lined plate.
Carefully pour off most of the hot frying oil, leaving about ¼ cup in the skillet along with some browned bits.
Reduce the heat to medium. Whisk the flour into the reserved oil and cook for about 1–2 minutes, stirring constantly.
Slowly pour in the milk while whisking continuously. Cook for 4–6 minutes, until the gravy thickens enough to coat the back of a spoon.
Stir in the salt, black pepper, and garlic powder. Adjust the seasoning to taste, adding a splash of milk if the gravy becomes too thick.
Arrange the crispy chicken-fried steaks on plates and spoon the warm, creamy gravy generously over the top.