In a large sauté pan over medium heat, warm 1 tablespoon of the olive oil. Add the onion, season with salt and pepper and cook, stirring occasionally, until caramelized, about 15 minutes. Transfer to a bowl.
In the same pan over medium heat, warm 1/2 tablespoon of the olive oil. Add half of the spinach, season with salt and pepper and cook, stirring, until wilted, 2 to 3 minutes. Transfer to a colander. Repeat with the remaining 1/2 tablespoon olive oil and spinach. Using a rubber spatula, press out the excess moisture.
In a large bowl, toss together the bread cubes, the caramelized onion, spinach and cheeses. Transfer to a 4-quart baking dish. In a bowl, beat together the eggs, half-and-half, the 1 teaspoons salt and pepper, to taste. Pour over the bread mixture. If its looking super wet, add another handful of toasted cubed bread. Cover with plastic wrap and refrigerate for at least 2 hours or up to 12 hours.
Preheat an oven to 350°F
Remove the plastic wrap from the baking dish and cover with aluminum foil. Bake for 20 minutes. Uncover and continue baking until the top is browned and the strata is cooked through, 40 to 50 minutes more. Serve 12.