To a large mixing bowl, add the buttermilk, salt, pepper, and garlic powder and whisk together. Add the chicken pieces and stir to coat. Cover the bowl with plastic wrap and marinate in the fridge for 3 hours or overnight.
When you are ready to start cooking, preheat your oven to 200 degrees F so you can keep the fried chicken warm while you’re cooking the subsequent batches.
Pour enough oil to fill a deep-sided pan about 2 inches up the side and place over medium heat. (You may have to adjust the temperature from time to time to maintain a 350-degree F oil temperature as it will drop a bit with each new batch).
While the oil is heating, whisk together all ingredients to make the coating in a medium mixing bowl.
Take the chicken out of the fridge and either strain the excess buttermilk from the chicken or just shake off each piece as you take it from the bag. Coat each piece of chicken seasoned flour and set aside on a plate. (I bread 1/3 of the chicken to start and then begin cooking. Then I bread the other piece while the previous batch is frying.)
When the oil is hot enough, place about 1/2 pound of chicken in the pan, you don't want to overcrowd. (I usually end up cooking the chicken in 5-6 batches total.) Cook for about 4 minutes or until an instant read thermometer reads 165 degrees F internal temperature. Thinner pieces will cook faster, so keep an eye on them.
Use a spider strainer or tongs to remove the chicken from the hot oil. Place the pieces on a paper towel-lined plate for a few minutes to drain any excess oil. Then transfer the chicken to a baking sheet in the warm oven. Repeat frying until all of the chicken is cooked.
Make the sauce by adding all the ingredients to a small saucepan. Bring to a boil over medium heat and then lower to a simmer. Stir often for 5 minutes until the sauce becomes thick and sticky and coats the back of a spoon.
Use a pastry brush to coat the fried chicken in the sauce (see note). Garnish with sesame seeds and sliced green onion before serving warm.
Notes
If you prefer, you can toss the chicken in the sauce using a large bowl. The breading on the chicken may come lose while being tossed. I prefer to brush the chicken to prevent this. If you toss the chicken, you will have just enough sauce. If you brush it on, you will most likely have extra sauce that can be used for dipping.