Take this traditional southern side dish to the next level with smoky bacon, creamy bechamel, and sharp gruyere.
Preheat oven to 350 degrees with rack in the upper third. Bring a pot of salted water to a boil; prepare an ice bath. Add asparagus and cook until just tender and bright green, 2 to 3 minutes. Transfer to ice bath; drain.
Return pot to medium heat. Add bacon and cook, stirring occasionally, until crisp, about 10 minutes; remove bacon with a slotted spoon to a paper towel-lined plate. Discard rendered fat or reserve for another use. Add butter to same pot and heat over medium until foamy. Add onion, nutmeg, cayenne and 1 teaspoon salt. Cook, stirring occasionally, until onion is translucent, about 3 minutes. Stir in flour and cook, stirring occasionally, until toasted and fragrant, about 1 minute. Stir in mustard, then gradually whisk in milk and bring to a boil, whisking often. Reduce to a simmer and cook until thickened slightly, about 5 minutes. (You should have about 2 cups bechamel.) If not using right away, press a sheet of plastic wrap directly onto the surface of the sauce to keep a film from forming.
Spread 1 cup bechamel evenly across the bottom of a 9-inch-square baking dish. Reserving 1 cup for topping, sprinkle remaining asparagus over bechamel. Arrange reserved bacon in an even layer on top, followed by the sliced eggs, cracker crumbs and remaining bechamel. Sprinkle the reserved 1 cup asparagus down the center of the casserole, then sprinkle the cheese evenly on top and season with black pepper. Bake until sauce is bubbling, about 25 minutes. Turn oven to broil setting and continue to cook until golden-brown on top, 3 to 4 minutes more. Let cool 15 minutes on a wire rack before serving.