Preheat the oven to 400 degrees. Prepare a large bowl with ice water. Bring a large pot of water to a rolling boil. Add the salt. Add the green beans and boil for 5-8 minutes, depending on how soft you prefer them.
After boiling, immediately transfer them to the bowl of ice water. Place this in the fridge.
In a large skillet over medium low heat, fry the bacon.
Once all of the fat has rendered and it is brown, remove it from the pan and place on a plate lined with paper towels. Leave 2 tablespoons of the bacon grease in the skillet to sauté the mushrooms and set the remainder aside for frying the onions.
Increase the heat to medium. Add the mushrooms to the pan with the 2 tablespoons of bacon grease. Sauté for 3-4 minutes or until softened.
Add the butter, garlic, thyme, onion powder, salt, and pepper. Sauté for 2-3 minutes.
Add the flour and sauté for 1-2 minutes. The mixture will be very dry.
Deglaze the pan with about half of the broth, scraping all of the brown bits and flour off the bottom. While stirring continuously, add the rest of the broth. The sauce should be very thick.
While stirring continuously, add about ¼ of the half and half. Don’t add any more until it is combined completely. Repeat with the rest of the half and half.
Stir in the balsamic vinegar and simmer the sauce for 3-4 minutes or until it is thick enough to coat the back of the spoon.
Stir in the grated parmesan.
Remove the green beans from the fridge and drain all of the water, shaking off any excess. Add the green beans and about half of the bacon back into the sauce. Fold until combined.
Lightly grease a 2 quart baking dish. Transfer the green bean casserole to the dish. (Option: Cover and refrigerate overnight if making in advance.)
Bake uncovered for 25-30 minutes or until bubbling.
While the casserole bakes, add the remaining bacon grease to a large frying pan. Add oil so it is about ¾ inch deep. Heat to 350 degrees. While the oil heats, toss the onions, flour, and cajun seasoning together in a large bowl until completely coated.
Add about half of the onions to the skillet. The oil will bubble up.
Fry for about 2-3 minutes or until light golden brown, moving the onions around with a spoon or tongs a couple of times. Remove and place on a paper towel lined plate. Salt lightly while hot and repeat with remaining onions.
Let the casserole stand for about 5 minutes. Top with crispy onions and remaining bacon.