Preheat oven to 350 degrees. Spray a 9 x 13 baking dish with non-stick cooking spray.
In a large skillet over medium high heat break up uncooked sausage and brown until cooked through and no longer pink. NOTE: Do not drain as this adds flavor.
Place 4 TBS butter in with cooked sausage and stir until butter has melted. Add in flour and mix well for 1 minute until sausage is coated well. (NOTE: cooking for 1 minute cooks the raw flour taste out of the flour.)
Turn burner to a high heat and gradually add in milk one cup at a time slowly. (Add in one cup, stir, as it thickens add in 2nd cup, stir, add in 3rd cup as mixture thickens somewhat and stir.) Will take a few minutes to get a nice consistency. (I usually just need 3 1/2 cups to keep a thick consistency needed for the casserole.)
Season sausage gravy with salt, pepper, onion powder, and garlic powder. Stir to combine. Turn off heat and allow to rest and finish thickening while we work on next steps.
Roll out crescent roll dough into the bottom of prepared baking dish going up the sides 1/4 of an inch. Pinch together any open seams on thee bottom. (NOTE: crescent roll sheet dough will work as well.)
Pour sausage gravy over crescent roll dough in prepared baking dish. (NOTE: sausage gravy will still be warm and will have thickened more.)
In a medium bowl whisk together eggs, salt & pepper. Pour egg mixture over the sausage gravy in prepared baking dish. Sprinkle with shredded cheese.
Bake in preheated oven for 40-45 minutes. The crescent roll dough should be golden brown and cooked through, the eggs should be set with no jiggle in the center and the cheese golden brown. (NOTE: visit my instructional video below if needed.)
Allow casserole to rest a few minutes, then slice into squares, and ENJOY.