You could get away with marinating the chicken for only 4 hours or so, but longer is better.
You can use diced tomatoes instead of ketchup, if desired. You can use any seasonal vegetables that you like in this.
If the chicken becomes tender before the sauce reduces, just remove it and keep it warm while the sauce continues to simmer. If the sauce reduces and thickens before the chicken becomes tender, just add a splash of water and continue to cook until chicken is done.
If you want a less sweet flavor profile, just use 1 tablespoon of brown sugar in the marinade.