Mix half the oil and flour in a saucepan (off the heat), then blend in the milk. Bring the sauce slowly to the boil while whiskin stirring, then simmer for 1 min. Remove from the heat, cover and set aside.
Heat oven to 200C/fan 180C/gas 6.
Heat remaining oil in a frying pan, add the chicken, then fry until brown (not cooked through). Transfer to an ovenproof dish.
Add the onions to the pan and fry for 2-3 mins. Spoon over the chicken, then top with the tomatoes and asparagus. Set aside and prepare the sauce.
Put the sugar and vinegar into the pan. Stir over medium heat until the sugar is a dark caramel colour, then add the stock. Bring to the boil and simmer for 1 min. Whisk into the milky sauce until blended, season, then add the tarragon.
Spoon sauce over the chicken and veg, sprinkle with crumbs and cheese, then bake for 20 mins.