Peel, and slice the onions. Melt the butter and one tablespoon of the oil in a large, heavy saucepan and stew the onion gently over a very low heat (the simmering mat comes in handy again) until they are golden brown, stirring from time to time so that they don’t catch. The more slowly you can do this, the better – it should take about an hour.
When the onion are evening brown all over, add the wine and boil down until it is reduced by a third. Then add the stock, bring to the boil and simmer, covered, for at least an hour. Add the Madeira and simmer for a further 15 minutes. Taste and add salt and pepper as required – remember the beef stock is unsalted up to this point.
Meanwhile, heat the remaining tablespoon of oil in a frying pan and fry the baguette slices until browned – on one side only. Remove from the pan and spread with butter on the uncooked side. Press the cheese onto the croutes (the butter will help it to stick) and then place them under a hot grill until the cheese is bubbling and lightly browned.
Ladle the soup into bowls, float a croute in each bowl – and enjoy!