Season beef with salt and pepper. In a small bowl, mix together oil, thyme, rosemary, and garlic. Rub beef with herb mixture. Place beef in a small roasting pan, cover loosely with plastic wrap, and refrigerate for at least 8 hours or overnight.
Remove beef from refrigerator 2 hours before you are ready to roast; allow it to come to room temperature. Meanwhile, make the yorkshire pudding batter: Whisk together milk, 1 cup flour, 1 tsp. salt, and eggs in a bowl. Cover; let batter sit at room temperature for at least 1 hour.
Heat oven to 500°. Remove plastic wrap and roast beef until browned, 18–20 minutes. Reduce temperature to 250°. Roast until a thermometer inserted into center of beef reads 120° (for medium rare), about 25 minutes. Remove from oven, transfer to a cutting board, and let rest, tented with foil, while you make the yorkshire pudding and gravy. Pour pan drippings into bowl, leaving about 3 tbsp. in pan. Set roasting pan aside.
Raise oven temperature to 450°. Spoon 1⁄2 tsp. reserved drippings from bowl into each cup of a nonstick muffin pan. Heat in oven for 15 minutes. Uncover batter; whisk in 1 tbsp. drippings from bowl. Remove pan from oven; pour batter evenly between cups; bake until risen and brown, about 20 minutes. Reduce oven temperature to 350°; bake for 10 minutes to set puddings. Remove pan from oven; set aside.
Make the gravy: Heat reserved roasting pan over medium heat. Add shallots; cook until soft, 4–6 minutes. Add wine; cook, scraping up browned bits, until reduced by half, 4–6 minutes. Whisk in remaining flour, followed by stock. Cook, whisking, until thick, about 5 minutes. Slice beef; serve with pudding and gravy. Garnish with chopped parsley, if you like.