Place chicken on a plate. Sprinkle the green onion, cilantro, garlic, onion, salt and pepper over it. Cover, and marinate for 30 minutes.
Heat the vegetable oil in a deep pot over medium heat. Stir in the sugar, and cook until the sugar has melted into a nice golden brown syrup. Add the chicken pieces, and brown quickly while turning continuously. Cover the pot, and let it cook for 2 minutes.
Pour in 1 cup of water, coconut milk and pepper flakes. Replace the lid, and cook over medium heat for 10 minutes. Stir in the ketchup and butter. Continue cooking until chicken is fork tender, 20 to 30 minutes. Taste and season with additional salt and pepper if needed. Serve chicken with the sauce in the pot as a gravy.