Clean your mushrooms by gently wiping them with a damp paper towel. Avoid soaking them as mushrooms absorb water like sponges. Slice most mushrooms thinly but reserve about 1/4 of them to chop into larger pieces, creating textural contrast in your finished soup. If using shiitake, remove and discard the tough stems.
Heat 2 tablespoons of olive oil in a large, heavy-bottomed pot over medium-high heat. Working in batches to prevent overcrowding, sauté the mushrooms until they release their moisture and turn golden brown, about 5-7 minutes per batch. Season each batch lightly with salt and set aside.
In the same pot, add the remaining tablespoon of olive oil. Add the diced onion and cook until translucent, about 4 minutes. Add the minced garlic and thyme, cooking for another 30 seconds until fragrant.
Sprinkle the flour over the onion mixture and stir constantly for 2 minutes to cook out the raw flour taste. This creates a roux that will thicken your soup.
Gradually whisk in the veggie broth, ensuring no lumps form. Add the soy sauce and optional sherry, then return three-quarters of the sautéed mushrooms to the pot, reserving the rest for garnish.
Simmer for 15 minutes, then use an immersion blender to partially blend the soup, leaving some texture. If you prefer completely smooth soup, blend thoroughly.
Stir in the heavy cream and butter (if using), and warm through without boiling. Season with salt and freshly ground black pepper to taste.
Ladle the hot soup into bowls and top with the reserved sautéed mushrooms, fresh chives or parsley, and an extra drizzle of cream if desired.