Heat 2 tablespoons of the oil in a deep, heavy-based, flameproof, lidded casserole over a high heat. Add the beef, in batches if necessary, and fry for 4-5 minutes, or until browned all over. Remove the meat from the casserole using a slotted spoon and set aside.
Heat the remaining oil in the pan, add the onions and garlic and fry, stirring well, for 4-5 minutes, or until softened, scraping up any browned bits from the bottom of the casserole using a wooden spoon. Stir in the beef stock.
In a large bowl, whisk the flour with a little of the wine until smooth, then gradually pour in the remaining wine, whisking until combined to a smooth batter with the consistency of double cream.
Return the browned beef to the casserole, then pour over the wine and flour mixture. Bring to the boil, stirring until thickened, then add the Worcestershire sauce and sugar and season, to taste, with salt and freshly ground black pepper. Cover the casserole with the lid, reduce the heat until the mixture is simmering, and simmer very gently for 2 hours, stirring from time to time (alternatively, cook the casserole in a low oven).
After 2 hours, add the mushrooms, return the mixture to the boil, then cover again, reduce the heat until the mixture is simmering, and simmer for a further ½ hour, or until the meat is tender.
Mix the mustard, horseradish and double cream (if using) in a bowl until well combined. Just before serving, stir it into the casserole. Serve with mashed potatoes and steamed vegetables.
Tip 1: At first it may seem there is not enough liquid in this recipe, and even that it will need to be topped up during the cooking time. But there is no need to: when the mushrooms are added, they release a lot of water, which dilutes the gravy.
Tip 2: If you like the heat of horseradish, use hot horseradish sauce instead of creamed, or double the amount of creamed horseradish sauce.
Tip 3: This casserole can be made up to 2 days in advance, then gently reheated. The cooked dish freezes well.