Heat the coconut oil in a nonstick skillet over medium-high heat. Add the diced onion once the oil is hot and cook for about 5 minutes, until it begins to soften. Stir in the ginger, garlic, curry powder, garam masala, chili powder, kosher salt, and tomato paste. Continue cooking for approximately 30 seconds, until the mixture becomes fragrant.
Transfer the onion and spice mixture to a slow cooker with a capacity of at least 6 quarts. Place the chicken breasts over the mixture, followed by the cauliflower florets and tomato sauce. Gently move the sauce and cauliflower around with a spoon so the florets are coated while keeping the chicken underneath largely undisturbed. Distribute the pieces of butter over the top.
Cover the slow cooker. Cook on HIGH for 1 1/2 to 2 1/2 hours or on LOW for 4 to 6 hours. The chicken is ready when it is fully cooked and an instant-read thermometer inserted into it registers 165°F. Because slow cookers vary, begin checking toward the early end of the cooking range to prevent the chicken from becoming dry. Transfer the cooked chicken to a cutting board and allow it to cool slightly.
Check the cauliflower. If it has not yet become tender, thoroughly stir the contents of the slow cooker so the florets are well coated in sauce. Cover again and continue cooking on HIGH for another 30 minutes to 1 hour, or until the cauliflower is completely tender. If the cauliflower is already tender, this additional cooking time is unnecessary.
When the chicken is cool enough to handle, cut it into bite-size pieces. Add the chicken back to the slow cooker with the tender cauliflower.
Stir in the half-and-half or full-fat coconut milk. Allow the mixture to cool for a few minutes before adding the Greek yogurt. Avoid adding the yogurt while the sauce is extremely hot, as excessive heat can cause it to curdle.
Serve warm with brown rice, quinoa, or naan and finish with chopped fresh cilantro.