Melt the butter in a large saucepan or dutch oven over medium heat. Add the mushrooms and onion and cook for 8-10 minutes, stirring occasionally, until the mushrooms have released their moisture and the mixture is deeply browned.
3 tablespoons unsalted butter, 8 ounces cremini or baby bella mushrooms, 1 small or half large yellow onion
Add the garlic and thyme and cook for 1 minute, stirring frequently.
2 cloves garlic, 1 teaspoon fresh thyme leaves
Sprinkle the flour over the mushroom mixture and cook for 2 minutes, stirring constantly, until the flour is lightly toasted.
3 tablespoons all-purpose flour
Gradually whisk in the vegetable broth, scraping the bottom of the pan to loosen any browned bits. Add the soy sauce, balsamic vinegar, salt, and pepper.
Bring the gravy to a simmer and cook for 8-10 minutes, whisking frequently, until thickened.
Transfer the gravy to a blender and blend on high speed until completely smooth. Alternatively, blend directly in the saucepan with an immersion blender.
Return the gravy to the saucepan and cook over low heat for 2-3 minutes, stirring occasionally. If the gravy is thicker than desired, whisk in a little additional vegetable broth. Taste and adjust the seasoning as needed.
Notes
Makes about 3 cups.
Gravy will thicken more as it cools; add enough broth so that it just coats the back of a spoon.
Store in an airtight container for up to 3 days or freeze for up to 3 months.