Melt butter in a large skillet over medium heat. Add onion and cook until softened, about 3 minutes. Stir in spinach and 1/2 tsp. salt and heat through. Stir in ham; let cool.
Set aside 1 cup cheese, cover and refrigerate. Butter a 9-by-13-inch baking dish. Cover bottom with a layer of bread. Cover bread with half of spinach mixture, then half of remaining cheese. Repeat with remaining bread, spinach and cheese.
Whisk together eggs, mustard, remaining salt and half-and-half in a bowl. Pour over strata. Press down with a spatula. Cover and refrigerate at least 6 hours or overnight.
Uncover strata and bring to room temperature. Preheat oven to 350°F. Sprinkle with reserved cheese and bake until set in center, 50 to 60 minutes. Let stand 5 minutes, cut into squares and serve.