Start by preparing the ingredients: Finely slice all of the onion and potatoes into thin coins using a mandoline. If you do not have a mandoline, use a sharp knife and cutting board. Slice the potatoes and onions in even thickness (~¼" thick).
Use a cheese grater to freshly shred the Gruyere and sharp white cheddar.
Heat a sauce pot to medium heat. Add the butter and whisk until melted. Pour in the flour and milk. Whisk until a roux is created.
Add in the all of the sharp white cheddar cheese and almost all of the gruyere (save ~¼ cup for topping). Pour in the salt, onion dip mix, minced dried onion, onion powder, and worcestershire sauce.
Whisk until the cheese has melted and it's a smooth cheesy, onion sauce (the texture should be like a creamy gravy).
Preheat the oven to 350°F. Spray the casserole dish with cooking spray and add ⅓ of the cheese mixture to the bottom of the pan.
Assemble the coined potatoes and onions into the casserole dish. I like to take a few yukon potatoes, a few onions, and a few russet potatoes coins and stack them in the same order, creating variety throughout the dish.
Pour the onion cheese sauce over the sliced potatoes and onions, letting it seep between the layers. Use a rubber spatula to spread the cheese all over the potatoes / between the layers. Add the remaining shredded gruyere cheese on top.
Cover the dish with foil and bake for 45 minutes. The potatoes are done when you can easily poke them with a fork. Turn the oven to broil, remove the tinfoil, and broil the potatoes for 3-5 minutes or until the top is golden brown.
Garnish with fresh rosemary sprigs and green onion. Serve warm!