Heat the oil and butter together in a large, deep skillet or Dutch oven over medium-low heat until the butter melts. Add the onions, 1 teaspoon salt, ½ teaspoon pepper, and 3 thyme sprigs. Cook, stirring occasionally, until the onions are deeply browned and very soft, about 45 minutes.
While the onions are cooking, cook the pasta in salted water according to the package directions. Drain, rinse with hot water, and set aside.
Transfer the onions with a slotted spoon to a bowl and set aside. Add the flour to the butter and oil mixture in the pan. Turn the heat up to medium and cook the flour, whisking, for 1 minute. Add the beef broth, milk, and Worcestershire sauce. Cook, stirring occasionally, until the mixture starts to thicken. Add the onions to the mixture. Crumble in the goat cheese and add half the grated Gruyere. Cook until the cheeses melt. Stir in the penne. Continue to cook until the mixture has thickened to the consistency of macaroni and cheese.
Position the top rack of the oven about 6 inches from the top. Spoon the mac and cheese into ramekins or French onion soup bowls. Top with the remaining cheese. Broil until the cheese melts and starts to brown, 2-3 minutes. Top each ramekin with a sprig of fresh thyme and serve.