Wash and trim asparagus. Cut into ¾-inch lengths. Cook in boiling, salted water until tender, 3–4 minutes. Drain asparagus and submerge in ice water to stop cooking. Set aside.
In a medium-size oven-safe skillet, heat olive oil over moderate heat. Add onion, sugar, and salt; reduce heat to medium-low, and cook, stirring occasionally, until onion is golden brown and very tender, about 30 minutes. Remove onion from the pan with tongs, leaving as much oil in the pan as possible. Let onion sit 10 minutes, until no longer hot.
In a large bowl, whisk eggs until smooth. Add cheese, pepper, asparagus, and onion. Set the skillet over medium heat. Add egg mixture, stirring briefly to distribute fillings.
Reduce heat to low and let mixture cook slowly; you should see just a few lazy bubbles popping up around the edges. Cook undisturbed until edges are set but middle is still very liquid, about 8 minutes. Meanwhile, preheat your broiler on high.
Transfer skillet to oven, positioning it 3–4 inches from the broiler. Cook until top of frittata is golden brown, edges are puffed, and center is just set (it will jiggle slightly but pop right back after you poke it), about 2 minutes. Don’t overcook it! Loosen with a spatula, if needed. Remove to a warmed platter and serve immediately.