Pound the chicken between 2 sheets of plastic wrap with a mallet or heavy skillet until 1/4 to 1/2 inch thick. Transfer to a large bowl and add the onion, 3/4 cup buttermilk, the garlic and 1/2 teaspoon each salt and pepper. Refrigerate at least 30 minutes and up to 4 hours.
Meanwhile, cook the bacon in a medium skillet over medium heat, turning, until crisp, about 8 minutes. Remove to a paper towel-lined plate to drain; reserve the drippings for the dressing. Chop the bacon.
Fill a small bowl with ice water. Bring a medium saucepan of water to a boil. Add the eggs and cook 4 minutes, then transfer 1 egg to the ice water using a slotted spoon. Continue cooking the remaining 2 eggs until hard-boiled, 6 more minutes; drain and let cool.
Make the dressing: Remove the 4-minute egg from the ice water and carefully peel (it will be soft); transfer to a blender. Add the vegetable oil, reserved bacon drippings, remaining 1/4 cup buttermilk, the vinegar, mustard, 1/4 teaspoon salt and a few grinds of pepper and blend until smooth and slightly thick, about 1 minute. Refrigerate while you cook the chicken, at least 15 minutes.
Preheat a grill or grill pan to medium high. Lightly brush with vegetable oil. Drain the chicken and onion, discarding the garlic; pat the chicken dry. Lightly season with salt and pepper. Grill the chicken, turning once, until just cooked through, 6 to 8 minutes. Grill the onion, turning occasionally, until tender and lightly charred, about 10 minutes; roughly chop.
Peel and chop the hard-boiled eggs. Toss the romaine, grilled onion, tomato, avocado, blue cheese and 1/4 cup of the dressing in a large bowl. Divide the chicken among plates and top with the salad; top with the bacon and chopped hard-boiled eggs. Drizzle with the remaining dressing and season with pepper.