Position an oven rack in the center and preheat the oven to 375°F (190°C). Lightly coat a 9x13-inch baking dish with cooking spray, including the corners and sides, and set it near the stove.
Finely dice the onion into ¼-inch pieces, mince the garlic, and shred both cheeses on the large holes of a box grater. Toss the cheeses together and set aside; leave the fresh toppings for later.
Heat olive oil in a 12-inch skillet over medium-high heat until it shimmers. Add the ground beef and cook for 5 to 6 minutes, breaking it into small crumbles, until no pink remains; then add the onion and cook 3 to 4 minutes until soft.
Stir in the garlic and cook for 30 seconds until fragrant, then tilt the pan and spoon out most of the rendered fat, leaving about 1 tablespoon behind.
Sprinkle the taco seasoning over the beef and stir for 30 seconds to toast the spices. Pour in ¾ cup of the salsa and the water, stir well, and bring to a gentle simmer over medium heat.
Simmer for 5 to 6 minutes, stirring now and then, until the filling is thick and a spoon leaves a clean trail across the bottom of the pan. Remove from the heat.
While the filling simmers, dice the tomato, slice the green onions, chop the cilantro, and shred the lettuce. Keep the avocado whole for now.
Scrape the refried beans into a microwave-safe bowl, stir in the remaining ¼ cup of salsa, and microwave for 45 to 60 seconds. Stir until smooth and easy to spread.
Spread 3 cups of the broken tortilla chips in an even layer across the bottom of the prepared dish. Spoon the warm bean mixture over the chips in dollops and spread it into a continuous layer that reaches every edge.
Spoon the beef filling over the beans and spread it evenly to the corners. Sprinkle the cheddar and Monterey Jack mixture over the beef in an even blanket and press very lightly with the back of a spoon.
Bake for 20 minutes, until the edges bubble and the cheese is melted with a few golden spots. Remove the dish and set it on a cooling rack or trivet to rest for 5 minutes.
Dice the avocado just before serving. Scatter the lettuce, tomato, green onions, cilantro, and avocado over the casserole, add the remaining 2 cups of chips around and on top, and serve each portion with a spoonful of sour cream.