Adjust an oven rack to the middle position and heat the oven to 375°. Grease the bottom and sides of a 9 by 13-inch baking dish (or shallow casserole dish of similar size) with the butter; set aside.
Place the potatoes, 1 quart of water, and ½ teaspoon salt in a large saucepan. Bring to a boil over high heat; reduce the heat to a simmer and cook until the potatoes are just tender, about 4 minutes. Drain.
Meanwhile, sauté the bacon until crisp; pour off all but about 1 Tbls. of bacon grease. Sauté onions, and ½ teaspoon salt, stirring frequently, until the onions have browned. Remove from the heat and add to the bowl with the potatoes; fold gently, using a rubber spatula to combine. Cool for 10 minutes.
Whisk the eggs, half-and-half, cayenne, black pepper, and ½-to-1 teaspoon salt together in a large bowl. Add the cooled potato mixture to prepared baking dish; sprinkle with cheddar cheese. Pour egg mixture over and press gently into an even layer. Sprinkle with the Parmesan. Bake until the eggs have set and the top is lightly browned, about 40-50 minutes. Let sit for 10 minutes. Serve with Tabasco.