Melt the butter in a large dutch oven over medium heat. Add the onion, carrots, and thyme, and cook about 10 minutes. Stir in the flour and cook until golden, about 2 minutes, then gradually whisk in the broth. Add the cauliflower and bring to a boil. Cover, and cook over medium heat for 10 minutes, until the cauliflower is tender.
Transfer the soup to a blender and purée until smooth. Return the soup to the pot. If needed add 1-2 cups water, then the broccoli, bay leaves, paprika, cayenne, and a large pinch each of salt and pepper. Bring to a simmer over low heat and cook, uncovered, until the broccoli is tender, about 10 minutes. If you think it's cooking down too much, add a lid and set it ajar on the pot.
Remove the bay leaves and blend the soup in batches until the broccoli is mostly pureed leaving small chunks.
Return the soup to the stove and set over low heat. Stir in the heavy cream, half and half or coconut milk , add the cheese and cook until melted and creamy. Taste, and add salt and pepper as needed. If the soup is thick, add broth to thin. Ladle into bowls and top with a little extra cheddar and more fresh thyme.