Preheat oven to 400°F.
In an oven/broiler-proof large skillet (at least 12-inches wide) add 1 tablespoon butter and 1 tablespoon olive oil. Heat on medium until butter is melted. Add the onions, carrots, ½ teaspoon salt, ¼ teaspoon pepper and crushed red pepper flakes, if using. Cook, stirring occasionally, until the carrots start to soften. Add the garlic and tomato paste and stir constantly until the mixture darkens and the garlic is fragrant, about 2 minutes. Sprinkle the flour over the vegetables and stir to combine. Cook, stirring constantly for about 2 minutes, scraping up the browned fond on the bottom of the skillet. Add the beef broth, Worcestershire and thyme. Scrape the bottom of the pan to release any browned bits and bring to a boil.
Reduce the heat to medium-low and add the beef in small chunks on top of the vegetables (don't stir). Bring the mixture to a simmer, cover and cook until the beef is cooked through, about 12-15 minutes, stirring halfway through breaking up any large clumps.
Whisk together the cornstarch with 1 tablespoon water and add to the beef. Cook for 1 minute or until slightly thickened. Stir in the peas and remove from the heat. Check the seasoning and add salt and pepper as needed.
Place the mashed potatoes in a large zipper or pipping bag. Cut a 1-inch opening in one corner of the bag and pipe the potatoes over the beef mixture. Smooth the potatoes to cover the beef. Drag the tines of a fork across the top to make decorative ridges in the potatoes.
Place the skillet on a rimmed baking sheet and bake until the filling is bubbling, about 15 - 20 minutes. Turn the broiler on HIGH, prop the oven door open slightly and broil the casserole until the potatoes are golden brown and crusty, about 5 minutes. (Watch carefully so they don't burn!)
Cool 10 - 15 minutes before serving.