Peel and very finely slice the onions, then add to a lidded frying pan over a medium-low heat with the oil and a little sea salt.
Turn down the heat to very low and cook for 10 minutes, or until the onions are soft, but not coloured, stirring frequently.
Stir in the Marmite and cook for another 1 to 2 minutes. Add the flour, mixing it in thoroughly, then pour in 100ml of boiling water.
Keep stirring until it’s simmering, then put on the lid and simmer over a very low heat for 30 to 40 minutes, or until reduced, stirring often. Add a few tablespoons of hot water if it becomes too dry, and season to taste.
Cook the penne according to the packet instructions. Drain well, add to the onion sauce and cook for 1 to 2 minutes. Turn off the heat and stir in the butter until melted.