In a large skillet, heat the olive oil over medium heat. Add the onions and sauté until softened and translucent. Crumble the sausage into the pan and cook until completely browned. Drain the fat from the pan and reserve to use in the gravy(pour into a small container with a lid and refrigerate overnight).
In a large bowl, combine the cooked sausage and onions, torn croissants, and the shredded cheese. Pour this mixture into a 9x13-inch glass baking dish greased with non-stick cooking spray.
In a medium mixing bowl, whisk together the eggs, heavy whipping cream, ½ cup of the milk, mustard powder, salt, pepper, paprika, and garlic powder. Pour this mixture all over the croissants and sausage in the baking dish.
Cover the baking dish with plastic wrap and refrigerate overnight, or for 8 hours.
Remove the casserole from the refrigerator and preheat the oven to 350F.
Bake the casserole at 350F for 35-45 minutes until golden brown.
While the casserole is baking, heat over medium heat the butter and 1 tablespoon of the reserved fat (from cooking the sausage) until melted. Add the flour and whisk until combined. Allow the fat and flour mixture to cook over medium heat for 1 minute.
Slowly add the remaining 2 ½ cups of milk a small amount at a time, whisking well between each addition until all of the milk is combined. Allow the gravy to simmer on low heat for 2-3 minutes, stirring often, until thickened. Add salt and pepper to taste.
Slice the casserole and serve the gravy on the side or ladled over each slice.