Set a large cast iron skillet over medium heat and add the bulk breakfast sausage directly to the dry pan. Use a wooden spoon to break the sausage into small, bite sized crumbles as it cooks.
Cook for 6 to 8 minutes, stirring occasionally, until the sausage is fully browned and no pink remains. Leave the rendered fat in the pan, since this is what forms the base of your gravy. Do not drain it away.
Sprinkle the 1/4 cup of flour evenly over the browned sausage and fat in the skillet. Stir constantly for about 1 to 2 minutes, coating the sausage in the flour and cooking off the raw flour taste.
The mixture should look pasty and slightly golden, which tells you the roux is ready for liquid. Reduce the heat to medium low and slowly pour in the 3 1/2 cups of whole milk, about a cup at a time.
Whisk continuously as you add the milk to prevent lumps from forming in the roux. Keep whisking until the mixture is smooth and evenly combined before adding more milk.
Let the gravy come to a gentle simmer, stirring frequently so it does not stick or scorch on the bottom of the pan. Continue simmering for 5 to 7 minutes, until the gravy thickens enough to coat the back of a spoon.
If the gravy gets thicker than you like, whisk in a splash more milk until it reaches your preferred consistency. Stir in the 1/2 teaspoon of salt, the 1 teaspoon of coarse black pepper, and the optional 1/4 teaspoon of cayenne pepper.
Taste the gravy and adjust the salt and pepper as needed, since sausage brands vary in how much salt they already contain. Remove the skillet from the heat once the seasoning tastes balanced to you.
Split the 8 warm buttermilk biscuits in half and arrange them on plates. Spoon the hot sausage gravy generously over the biscuits while it is still warm and pourable.
Serve immediately, since the gravy will continue to thicken as it cools.