Pre-heat the oven to 350°F.
In a large pot of boiling salted water, cook the pasta according to package directions; drain and set aside.
While pasta is cooking, place a large skillet, over medium-high heat, and add the sausage; cook, breaking up with a spatula, until browned; approximately 5 to 7 minutes; remove sausage from skillet; set aside.
Heat milk in microwave or in a saucepan.
Return the large skillet to the stove, over medium heat; add and melt the butter.
Add the flour; cook, whisking constantly, for 2 minutes.
Whisk in the hot milk, ¼ cup at a time; continue whisking until the sauce is smooth; bring to a boil and continue to cook for another 2 minutes.
Reserve 1 cup cheese and ½ cup caramelized onions. for topping.
Wisk in Gouda until the cheese is melted; about 2 minutes; season to taste with salt and pepper.
Stir in caramelized onions and sausage; pour mixture over pasta; stir until well combined.
Spray a 9 x 13-inch baking dish with non-stick spray.
Add the pasta mixture in an even layer; sprinkle the remaining caramelized onions and gouda cheese over the top; cover with aluminum foil.
Place in the pre-heated oven and bake 30 minutes.
Remove from the oven and allow to rest for 10 minutes before serving.