For the soup, set a large saucepot over a high flame and heat up the olive oil. Add the onions, stir briefly, and lower the heat to medium. Add a pinch of salt to draw moisture out of the onions. Cook the onions until they are soft and translucent but without any browning, about 10 minutes, stirring occasionally. Add the potatoes, bay leaf and chicken stock. Raise the flame to high to bring the stock to a boil, then lower the heat to a simmer. Taste the stock and season with salt and pepper, if necessary. Cook until the potatoes are tender, about 10 minutes. Add the asparagus and thyme. Return the stock to a simmer. Cook until the asparagus is barely tender.
Remove the bay leaf. Working quickly, ladle some of the soup into a blender with the spinach and vitamin C. Process until the soup is smooth and homogenous. To cool quickly, remove to a large bowl set inside a larger bowl filled with ice water or a sink partially filled with ice water. Add the cream and lemon zest, and season with salt and pepper. Stir often until the soup is no longer steaming. (The soup can be made to this point, covered and refrigerated for up to 1 day or frozen for up to 1 month.)
To make the zabaglione, bring 2 inches of water to a simmer in a large saucepan. In a large non-reactive bowl, whisk together the egg yolks and wine. Season with salt and pepper. Set the bowl inside the saucepan but not touching the water, and whisk constantly until the mixture has thickened to point where the whisk can leave a clean trail on the bottom of the bowl, 3 to 5 minutes. Remove the bowl from the heat. Whisk vigorously for 1 minute to cool to room temperature and gradually whisk in the cheese. Season the mixture with pepper, to taste. (The zabaglione can be made to this point, covered and refrigerated for up to 1 day.) Add 1/3 of the whipped cream. Whisk until smooth and then fold in the remaining whipped cream, being careful keep the mixture light and airy.
To serve, in a large saucepot, warm the soup over medium heat. Ladle into espresso cups. Spoon the zabaglione over each serving (about 1 teaspoon for each espresso cup of soup). Serve warm or at room temperature.