Adjust oven rack to lower-middle position and heat oven to 300 degrees.
Pat pork dry with paper towels and rub all over with 1 teaspoon thyme, 1 teaspoon sage, salt, and pepper.
Tie roast at 1-inch intervals with kitchen twine.
Arrange roast, fat side up, in roasting pan and cook until beginning to brown, about 3 hours.
Add onion, mushrooms, broth, 1 cup water, bay leaf, remaining thyme, and remaining sage to pan and continue to roast until meat is well browned and skewer inserted in center meets no resistance, about 3 hours.
Transfer roast to cutting board, tent with foil, and let rest 30 minutes.
Discard onion and bay leaf.
Strain contents of roasting pan through fine-mesh strainer into fat separator; reserve mushrooms.
Let liquid settle, then pour defatted pan juices into measuring cup and add water to yield 1½ cups.
Transfer 2 tablespoons of fat from separator to large saucepan and heat over medium-high heat until shimmering.
Stir in flour and cook until golden, stirring constantly, 1 to 2 minutes.
Slowly whisk in pan juices and bring to boil.
Add reserved mushrooms and simmer over medium-low heat until gravy is slightly thickened, about 5 minutes.
Remove twine from pork.
Cut pork into 1-inch slices.
Serve with gravy.
