Preheat the oven to 350 degrees F.
Heat the EVOO in a large saute pan over medium-high heat and brown the mushrooms until tender and dark. Stir in the thyme, garlic, shallots, some salt and pepper, cook 1 to 2 minutes. Deglaze the pan with the marsala and stir until almost completely evaporated. Pour in the stock, wilt in the spinach and turn off the heat.
Whisk the half-and-half with the eggs, nutmeg and some salt and pepper in a large shallow bowl. Soak the bread, turning occasionally, until the liquid is absorbed.
Grease a 9-by-13-inch baking dish. Lay 4 slices of the bread on the bottom and top with the mushrooms and spinach and half of the cheeses, followed by the remaining bread and cheeses. Dot the top with the butter and bake until golden, 45 minutes to 1 hour.
Cool and store for a make-ahead meal. Bring to room temperature before reheating in an oven at 325 degrees F, 30 minutes.