Most whole turkey breasts come already tied up, in which case you can marinade it as-is. However, the marinade will permeate the meat better if you open it up (that is to say, if you’re confident about rerolling it) or make some slits on the underside. The sauce itself can be made up to 24 hours ahead and rewarmed gently.
In a large bowl, whisk together the garlic, lemon juice, honey, mustard, two tablespoons of the oil, vinegar and rosemary. Add the turkey breast, turning it so that it is well coated on all sides. Cover the bowl with plastic wrap and refrigerate overnight or for at least 12 hours.
Preheat the oven to 350 degrees Fahrenheit.
Heat the remaining two tablespoons of oil in a heavy skillet set over medium-high heat. Brushing any excess marinade off the turkey breast, add to the skillet and brown on all sides, about two minutes per side.
Transfer the turkey to a roasting pan. Roast in the center of the preheated oven, brushing with any leftover marinade every 20 minutes, until the juices run clear or a meat thermometer registers 170 degrees Fahrenheit., about one hour.
Meanwhile, make the onion sauce. Heat the oil in a large non-stick skillet set over medium heat. Add the onions and garlic. Cook, stirring occasionally, for 45 minutes, adding 1/4 cup water halfway through if the onions start to stick.
Stir in the sage, caraway, salt and pepper and honey. Cook for another 10 minutes.
Sprinkle the flour over. Cook, stirring, for one minute. Pour in the wine and stock. Bring to a boil. Cook for one to two minutes or until thickened. Stir in the parsley.
Transfer the meat to a cutting board; tent with foil for 10 minutes. Slice and serve with the onion sauce.