Preheat oven to 350℉ (325℉ if using glass pan). Spray a 9x13-inch baking pan with nonstick cooking spray.
In a very large skillet, heat olive oil. Add onion, thyme and ½ tsp of salt. Cook for about 8 minutes, until onion is very soft.
Add all the mushrooms, garlic, and remaining ½ tsp salt. Continue to cook, stirring, for about 10 minutes, or until mushrooms are soft and cooked down.
Stir in white wine vinegar and lemon juice. Cook, stirring, for 5 minutes. Remove from heat, add black pepper to taste.
Arrange bread cubes in the pan. Spread mushroom mixture on top of the bread.
Combine eggs and milk in a blender or food processor (I use a hand blender). Process until smooth. Pour liquid mixture over the bread and mushrooms, let it sit for 5 minutes. Use a spoon to push the bread into the liquid until all the pieces are soaked. Sprinkle with parmesan cheese.
Bake for 35 to 40 minutes, or until custard is almost set and top pieces of bread turn golden on the edges.
Cool for at least 15 minutes before serving. Serve warm or at room temperature. Excellent when reheated.