For the asparagus: Cut off the asparagus tops and reserve. Chop the stems into pieces, discarding the woody bits. (If the stems are really thick and tough looking, peel them first.) Heat the oil and butter in a saute pan. Add the stem pieces and cook 5 minutes. Add the garlic and then the asparagus tips. Pour over 1/4 cup/60 ml water, season with salt and pepper and cook until tender, 5 to 15 minutes, depending on the asparagus. (If you like, you can add a sprig of fresh rosemary to the dish with the garlic and asparagus tips, then remove it at the end)
For the risotto: On a separate burner, in a pot, bring the chicken stock to a simmer. Heat 2 tablespoons of the butter in a saucepan and cook the onions and shallots until soft, stirring with a wooden spoon. Add the rice and stir until translucent, about 4 minutes. Stir in the wine and reduce until almost dry. Add a ladle of stock and cook, stirring, until it disappears. Continue one ladle at a time, until the rice is tender and creamy, about 30 minutes.
To serve: Remove from the heat and stir through the asparagus, remaining tablespoon of butter, lemon zest and half the cheese. Taste and adjust the seasoning. Spoon the risotto into bowls and scatter over the remaining cheese.