In a large skillet over medium heat, melt the butter. Add the onions, shallot, salt, pepper and cayenne and saute for 10 minutes.
Reduce the heat to medium-low and continue to cook slowly, for another 20-25 minutes. The onions should be deeply golden brown and fragrant.
Add the garlic and cook for another 1-2 minutes. Remove from the heat and allow the onion mixture to cool to room temperature.
In a medium bowl, add the softened cream cheese, sour cream and mayonnaise. Mix together until smooth and well combined. (I usually use an electric mixer to do this, but you can also use a spoon if your cream cheese is very soft.)
Mix in the celery salt, Worcestershire sauce, lemon juice and a little more salt and pepper (I add at least ¼ teaspoon each). Stir in the cooled onion mixture.
Cover the bowl and refrigerate for at least 1 hour. (I like to make this a day in advance as the flavors just get better!)
Stir again and sprinkle with chives if desired before serving. Serve with your favorite potato chips. Enjoy!