Heat the oven to 375 degrees F, and lightly grease a 9×13 casserole.
Heat a large skillet over medium-high heat with just enough oil to lightly coat the bottom. Add the onions, and sauté for 6-7 minutes or until starting to brown. Add the ground beef and brown, breaking up as you go. When the meat is mostly cooked but still a little pink, stir in the ketchup, mustard, and steak seasoning. Stir to evenly coat, and then add the red pepper. Cook for another minute or two, and then remove from the heat.
Carefully transfer the meat mixture into a large mixing bowl. (This can be done immediately–just use a heat resistant bowl–but it is also okay to let the meat sit for up to two hours at room temperature and continue after it has cooled.)
To the meat mixture, add the hash browns and 1 1/2 cups cheese. Stir to combine.
In a separate bowl, whisk together the eggs and milk. Add them to the hashbrown mixture, and stir to combine
Pour the mixture into the prepared baking dish, and top with the remaining 1/2 cup of cheese. Cover the dish with aluminum foil and bake for 20 minutes. Remove the foil and bake for an additional 10-15 minutes or until the mixture is just set and the top of the potatoes are slightly brown. To ensure some “juiciness,” take care not to over-bake.
Remove from the oven, and let the casserole rest for 5 minutes. Sprinkle with green onions, if using, and serve.