Preheat the oven to 400° F and get out a medium sheet pan. Carefully cut the spaghetti squash in half along the length. Place each half cut side down on the sheet pan. Bake at 400° F for 30-40 minutes, until a finger pressed down onto the skin leaves an indent. Place the squash halves cut side up on a flat surface to help cool the squash. Once cooled, use a fork to make the spaghetti "strands" and place the strands in a large mixing bowl.
While the squash cooks, cook the bacon using your preferred method. I use the Sauté function on my Instant Pot, but you could sauté the bacon on your stovetop as well. When crisped and brown, use a slotted spoon to remove the bacon and place on a paper towel lined plate. When the fat has drained off a bit, add the bacon bits to the large mixing bowl with the spaghetti squash strands.
Place 2 tbsp of the bacon fat in a medium skillet over medium heat. When hot, add the onions, carrots, and garlic. Sauté, stirring occasionally for 8-10 minutes until softened and fragrant. Remove from heat and pour the mixture to the large mixing bowl.
Add all of the rest of the casserole ingredients to the large mixing bowl. Use a spoon to mix the ingredients until combined completely.
Grease an 8" x 8" glass baking dish with cooking fat of your choice. Pour the casserole ingredients into the baking dish and use a spatula to smooth it out.
Bake the casserole at 350° F for 50-60 minutes until it is bubbly around the outside, and dry to the touch and set toward the middle. Serve with diced red onion, sliced avocado, and extra BBQ Sauce drizzled over the top of the casserole if desired. Serve hot and enjoy!