Heat butter and olive oil in a large pot over medium heat. Add onion and cook 4–5 minutes until softened. Stir in garlic and cook 30 seconds.
Add mushrooms with a pinch of salt. Cook 8–12 minutes, stirring occasionally, until they release their liquid and it fully evaporates. Continue cooking until the mushrooms begin to brown and develop color.
Stir in thyme and flour. Cook 1 minute, stirring constantly.
Add wine (if using) and simmer 1–2 minutes until mostly reduced.
Gradually whisk in broth until smooth. Bring to a gentle simmer and cook uncovered 12–15 minutes, until slightly thickened and the soup lightly coats the back of a spoon.
Remove about 1 cup of mushrooms for texture, if desired. Using an immersion blender, blend the soup until mostly smooth, leaving some texture. Return reserved mushrooms to the pot.
Reduce heat to low. Stir in milk, cream, soy sauce (or Worcestershire), and lemon juice. Heat gently; do not boil.
Taste and adjust salt and pepper. Serve hot, garnished with parsley if desired.