Preheat oven to 350°F and spray a large 9"x13" casserole dish with nonstick cooking spray. Fill a large pot with water and add a generous teaspoon of salt. Bring water to a boil over high heat. Once boiling, carefully transfer the cauliflower florets to the pot and blanch for 3-4 minutes. Drain and gently pat the cauliflower dry with a clean paper towel. Set aside.
Chop the bacon into small pieces and add them to a large skillet or saucepan set over medium-high heat. Once the bacon is hot and sizzling, reduce heat to medium-low, cover with a lid, and cook low and slow, stirring occasionally. Once the bacon pieces are golden and release their grease, remove the lid and allow them to cook until the desired doneness is reached. Remove from heat and use a slotted spoon to transfer the bacon to a plate lined with paper towels and set aside. Discard all but 1-2 tablespoons of leftover bacon grease.
Return the saucepan to medium heat. Add the onion and cook for 4-5 minutes, or until soft. Add the minced garlic and cook for an additional 1 minute, mixing well to combine with the onions.
Reduce heat to medium-low. Melt the butter. Once melted, sprinkle with flour and stir until completely combined and the raw flour has been cooked off (approximately 1 minute). Slowly add the milk, whisking continuously, until fully combined. Bring to a low simmer.
Add the cream cheese and continue to whisk until fully incorporated with the milk. Remove from heat and stir in the sour cream, half of the shredded cheese, and half of the crumbled bacon. Season generously with salt, pepper, and fresh thyme, to taste.
Transfer the drained cauliflower florets to your prepared baking dish. Pour the homemade cheese sauce directly over the florets and mix well to combine. Top with the remaining cheddar cheese, bacon, and fresh thyme (or green onions).
Bake until the cauliflower is soft and tender and the cheese is melted approximately 25-35 minutes. Garnish with additional salt and pepper, chopped scallions, red pepper, or your favorite hot sauce, to taste.