Position a rack in the center of the oven and preheat it to 350 F.
Place a large skillet over medium-high heat with 2 turns of the pan of EVOO, about 2 tablespoons. Add the onions and cook, stirring occasionally, until tender, 5-6 minutes. Remove from heat and cool slightly.
While the onions are caramelizing, fill a large skillet with about an inch of salted water and bring it to a boil. Toss the asparagus into the boiling water and cook about a minute, until they're bright green and tender. Drain into a colander and run cold water over them to stop them from cooking. Roughly chop them into bite-sized pieces and reserve.
While the onions are cooling off, whisk the eggs, milk and cheese in a medium mixing bowl. Season lightly with salt and pepper and set aside.
Arrange the bread in the bottom of a 13x9" baking dish and top with the ham, asparagus and onions, giving everything a light toss to disperse the good stuff throughout the pan. Pour the egg mixture over everything.
Sprinkle the shredded cheese over the top of the strata and place the dish on a rimmed baking sheet. Bake uncovered until puffed and golden brown, and a knife inserted into center comes out clean, about 1 hour. Let stand for 10 minutes then cut the strata into squares and serve.