Spray 13x9x2-inch glass baking dish with nonstick spray. Heat oil in large nonstick skillet over medium-high heat. Add fresh mushrooms and onion; sauté 3 minutes. Add dried porcini; sauté until mushrooms are brown, about 8 minutes. Mix in tarragon and garlic; season with salt and pepper. Transfer to medium bowl.
Add Madeira to same skillet; boil until reduced by half, stirring, about 1 minute. Whisk milk and eggs in large bowl to blend. Whisk in Madeira, 1/2 teaspoon salt, and 1/2 teaspoon pepper.
Arrange 6 bread slices over bottom of prepared dish. Top with mushroom mixture, half of Gruyère, and half of Parmesan cheese. Cover with remaining 6 bread slices. Drizzle egg mixture over; press gently to submerge bread. Cover; chill at least 1 hour and up to 3 hours.
Preheat oven to 350°F Sprinkle remaining Gruyère and Parmesan cheese over bread pudding. Bake uncovered until bread pudding puffs and top is golden brown, about 40 minutes.