In a large skillet brown the ground sausage and onion over medium heat, until cooked through, drain.
Add the flour to the sausage and continue cooking for 2 minutes, stirring constantly. Slowly add the milk and bring the mixture to a boil. Reduce the heat and let simmer for a minute or two until thickened, make sure to scrape any brown bits from the bottom of the pan.
Remove from the heat and add the Frank’s hot sauce and 2 cups of the cheese. Stir until melted and set aside to cool for about 5 minutes. Add the hash browns, beaten eggs, salt and pepper. If your skillet is not big enough to add in the hash browns and eggs, transfer to a large bowl and mix well.
Pour the mixture into a lightly greased 9 x 13 Pyrex dish. Top with the remaining 2 cups of cheese. Bake in a 350 degree oven for 45-60 minutes. Let stand 5 minutes before serving.
You can also prep this casserole the night before and refrigerate overnight. Add an additional 15 minutes to cooking time if you do this!