Melt butter in a large saucepan over medium heat. Add shallot and cook, stirring, until softened, about 5 minutes. Measure out 3 cups cauliflower florets and set aside. Using the remaining florets and stems, add 8 cups cauliflower, heavy cream, and stock; stir to combine. Reduce heat to medium-low and cover, simmer until cauliflower is tender, about 20 minutes.
Meanwhile, heat olive oil in a large skillet over medium heat. Add reserved cauliflower florets; cook, stirring, until cauliflower is tender and lightly browned, about 10 minutes. Remove from heat and season with salt and pepper; set aside.
Transfer cauliflower-cream mixture to the jar of a blender; carefully blend until smooth. Return soup to saucepan and bring to simmer; add lemon juice and cayenne pepper.
Divide soup evenly among 24 small serving cups. Garnish each with reserved sauteed cauliflower florets, 1/4 teaspoon caviar, and a small tarragon leaf; serve immediately.