Heat the oven to 300°F (150°C). Spread the bread cubes on two baking sheets and bake 25–30 minutes, stirring once, until dry and lightly crisp but not browned. Let cool. (You can do this a day ahead.)
Melt 2 tablespoons of the butter in a large skillet over medium-high heat. Add the mushrooms in an even layer and cook without stirring for 3 minutes, then stir and cook until browned and their liquid has evaporated, about 5 minutes more. Transfer to a large bowl.
Reduce the heat to medium and add the remaining butter to the skillet. Cook the onion and celery with a pinch of salt until soft and translucent, 8–10 minutes. Stir in the garlic, sage and thyme for 1 minute.
Raise the oven to 375°F (190°C) and butter a 9x13-inch baking dish.
Add the dried bread, onion mixture and parsley to the bowl with the mushrooms. Whisk the broth, eggs, salt and pepper together and pour over, folding gently until the bread has absorbed the liquid evenly.
Spread in the baking dish. Cover with foil and bake 25 minutes, then uncover and bake 20–30 minutes more until the top is golden and crisp and the center reaches 165°F (74°C).