In a wide, heavy saucepan or Dutch oven, heat oil over medium heat. Add onion, reduce heat to low and cook, stirring occasionally, until softened (do not brown), about 5 minutes.
Add cauliflower, potato and 2 tablespoons butter; stir to combine. Increase heat to medium and continue to cook, stirring occasionally, for 10 minutes. Add 2 cups broth and 1/4 teaspoon fine sea salt. Bring to a simmer, reduce heat to medium-low, cover and cook until cauliflower is tender, 25 to 30 minutes.
Meanwhile, spread bread in a single layer on a baking sheet. Bake until croutons are dry and lightly golden, 12 to 15 minutes. Remove from oven and cool on a wire rack.
In a large skillet, heat remaining 1 1/2 tablespoons oil over medium heat. Add escarole and generous pinch salt; cook, stirring frequently, until wilted and tender, about 3 minutes.
In a blender, carefully purée cauliflower mixture in batches. Return purée to pot and gently heat to warm through. Adjust seasoning. Add additional broth and/or water to thin soup to your liking, if desired.
Ladle soup into bowls, top with escarole and croutons, drizzle with oil and sprinkle with a little salt.