Pat the lamb pieces dry and season generously on all sides with salt and pepper. Heat the olive oil in a large heavy pot or Dutch oven over medium-high heat until shimmering. Add the lamb in a single layer without crowding and sear undisturbed for 3-4 minutes per side until deeply golden-brown. Work in batches, letting the pot come back to temperature between them. Remove the lamb to a plate.
Reduce the heat to medium. Add the chopped yellow onion and spring onions to the same pot and cook, stirring occasionally, for 5-6 minutes until softened and translucent, scraping up the browned bits from the bottom as you go.
Return the lamb to the pot, nestling it into the onions. Pour in the white wine and let it bubble actively for 2 full minutes to cook off the alcohol. Add the stock or water, enough to come three-quarters up the sides of the lamb. Season, bring to a boil, then reduce to low, cover tightly and simmer for 50-60 minutes until the lamb is nearly tender.
Add the chopped romaine and dill all at once. Stir firmly so the greens are submerged, replace the lid and cook a further 15 minutes until the lamb is fully tender and pulling from the bone.
Whisk the eggs, lemon juice and cornstarch together in a medium bowl for about 30 seconds until smooth and slightly frothy. Ladle out 3-4 ladles of hot broth and add them to the egg mixture one at a time, whisking constantly, until the mixture feels warm to the touch. Pour the tempered avgolemono back into the pot in a slow steady stream, stirring gently as you pour.
Reduce the heat to the absolute lowest setting and cook uncovered for 2-3 minutes, stirring gently, until the broth thickens slightly and turns glossy. Do not let it return to a simmer or the sauce will break. Taste and adjust salt and lemon, then serve immediately in deep wide bowls with plenty of broth and crusty bread alongside.