Bring a large pot of water to a boil and season heavily with salt
Bring a large pan to medium heat and add in the bacon. Cook 8-10 minutes, stirring often, until fully cooked and crispy.
Add in the beef and onions and cook another 5 minutes, breaking up the beef.
You want a nice coating of oil in the pan, but if it is swimming in oil, use a spoon to scoop out some of the oil.
Stir in the flour and cook, stirring often, for 4-5 minutes, making sure there is no visible flour remaining.
This is a good time to drop the pasta into the boiling water.
Add the milk to the pan with all the meat and stir well to combine. Bring to a simmer and watch it thicken slightly. Remove from heat.
Reserve 1/2 cup of the pasta cooking liquid just before you strain it. Add the pasta right to the sauce and stir to combine.
Add in 3/4 of the cheeses and stir to combine.
If it seems too thick, add a little of the pasta cooking liquid to thin it a bit.
Once it is cooled a bit, maybe 5 more minutes or so, you can add the pickles and BBQ sauce
Preheat oven to 425
Pour half the pasta into a baking dish. Add most of the rest of the cheese.
Pour the remaining pasta mixture into the pan and add the rest of the cheese. Top with the crispy onions.
Bake at 425 for about 20 minutes until bubbling on the sides and crispy on top.