Preheat the oven to 350F with a rack in the middle. Grease a 9x13-inch baking dish.
Melt 1 tablespoon of the butter in a large skillet over medium heat. Add the squash and onion and cook, stirring now and then, until soft and the pan looks wet, 10 to 12 minutes. Tip into a colander and press firmly with a spoon to squeeze out as much liquid as possible.
Return the squash and onion to the skillet, add the garlic, salt, and pepper, and cook 1 minute. Let cool 5 minutes so the eggs don't scramble.
Stir in the eggs, sour cream, 1 cup of the cheddar, and the Parmesan. Spread into the baking dish and top with the remaining ½ cup cheddar.
Melt the remaining 2 tablespoons butter, toss with the crushed crackers, and scatter over the top.
Bake until the top is golden and the center is set with a slight wobble, 30 to 35 minutes. A knife in the middle should come out mostly clean. Rest 10 minutes before serving.
Notes
Press the drained squash until it looks too dry; it bakes up creamy anyway, and skipping this makes the casserole soupy.
Let the squash cool a few minutes before stirring in the eggs so they don't scramble.
To make ahead, assemble without the cracker topping, cover, and refrigerate up to 1 day; top with the buttered crackers just before baking and add about 5 minutes.
Use gluten-free buttery crackers for a gluten-free casserole.
Store leftovers covered in the fridge up to 4 days and reheat in a 350F oven about 15 minutes to re-crisp the top. Freezing is not recommended.