If using fresh spinach, start by steaming it down. Rinse with cold water and while leaves are still wet, place in a large pot over high heat. Cover pot and let cook for 3-4 minutes, until just steamed down.
Heat olive oil in a large skillet over medium heat. Add sausage and cook while breaking up with a spoon or spatula until browned, about 5 minutes. Remove sausage to a bowl and set aside, leaving sausage grease in pan.
Add chopped onion to pan and cook until soft, for about 5 minutes. Add ½ tsp salt, ½ tsp pepper, and nutmeg and cook for another minute. Stir in spinach and remove pan from heat.
Generously butter a 3 quart baking dish (I used 9x13) and spread ⅓ of the cubed bread on the bottom of the dish.
Top bread with ⅓ of the spinach/onion mixture, ⅓ the sausage, and ⅓ of each cheese. Repeat until all ingredients are gone.
In a separate large bowl, whisk together egg, milk, dijon mustard, remaining ½ tsp salt, and remaining ½ tsp pepper.
Pour the egg mixture evenly over the baking dish. Cover dish with plastic wrap and place in the fridge for at least 8 hours and up to a day.
When ready to enjoy, remove from fridge and let sit at room temperature for 30 minutes. Then place, uncovered, in oven at 350 degrees for 45-50 minutes, until puffed, golden brown, and cooked through. Let rest for about 5 minutes before serving.