Preheat oven 350°F
Add the bacon to a large, deep, nonstick skillet over medium heat. Cook for approximately 10 minutes or until crispy, stirring frequently.
Take the skillet off the heat. Remove the bacon with a slotted spoon and set on a plate lined with paper towel, reserve for later.
Drain all but 1 tablespoon of the bacon drippings from the skillet (do not wipe). Place it back over medium heat and add 1 tablespoon of butter. When the butter is melted and foamy add the brussels sprouts, salt, onion powder, garlic powder and black pepper. Stir well to distribute the seasonings.
Cook for 3 minutes, stirring frequently.
Add the chicken broth, cover the skillet, and cook for 2 minutes to steam the brussels sprouts so they start to soften, stir occasionally.
Uncover the pan and cook them for another 2-3 minutes until the liquid cooks out and they are just tender and golden in spots, stir occasionally.
Take the skillet off the heat. Remove the brussels sprouts and place them in a casserole dish (about 9-10 inches – 1 quart).
Place the pan back over medium heat and add the remaining 1 tablespoon of butter. When it melts add the flour. Stir well to combine. Cook the flour for 30 seconds to 1 minute, stirring almost constantly.
Add the milk and stir well until smooth. When the milk starts to simmer (about 1-1½ minutes), remove the pan from the heat and let the milk cool 1-2 minutes so that it is still hot but no longer simmering.
Add the shredded cheese to the milk and stir until it is melted and incorporated into the sauce.
Add the cheese sauce to the brussels sprouts and stir to combine. Arrange the crumbled crispy bacon on top.
Bake the casserole for 25-30 minutes or until the sauce is bubbly around the edges.
Allow it to rest for 15 minutes before serving so it has a chance to set.