In a large skillet, cook and crumble sausage over medium heat until browned and cooked through. Transfer half of the sausage to a bowl and set aside.
Ensure there is ¼ cup grease in the pan with the remaining sausage. If there's not, add canola oil, butter, or lard to that amount. Whisk flour into the sausage and grease and allow it to cook for 2-3 minutes.
Add 1 cup of the milk and whisk quickly. This initial mixture will thicken and cook quickly. Add an additional cup of milk and stir until well combined. Allow the mixture to come to a light simmer, then turn heat to medium-low. As the mixture thickens, add the remaining milk and salt and pepper to taste. Allow it to simmer 3-5 minutes. Turn off the heat and set aside.
In a separate skillet, add 2 tablespoons of the butter. Once melted and hot, add the hash browns or tater tots. Cook until tender on the inside and crispy on the outside. Season with salt and black pepper. Transfer to a bowl and set aside.
In a small bowl, beat the eggs, salt and black pepper. To the same skillet on medium heat, add the remaining butter. Scramble the eggs until just set.
Preheat oven to 350°F. Grease a 13x9-inch baking dish with butter or nonstick cooking spray. On a large surface, lay out the tortillas in a single layer. To the centers of the tortillas, evenly distribute the cooked sausage, potatoes, scrambled eggs, and half of the cheese. Roll them up and place seam side down in the prepared dish.
Pour the gravy over the top of the enchiladas. Spread evenly. Sprinkle the remaining shredded cheese on top.
Bake 30-40 minutes or until the cheese is melted and bubbly. Serve with toppings as desired.