Most people in this thread are overcomplicating this. Coexistence isn't the problem - it's the way Meta's onboarding pipeline is a black box that drives everyone mad.
I've seen three distinct states too, and the confusion usually comes from assuming that because the number shows up in WhatsApp Manager, it's ready for Cloud API. That's a rookie mistake. the real issue is that the number often gets stuck in a hybrid state where the Business App still owns the primary session and the Cloud API side is just a read-only shadow.
the "offline" status and disabled templates almost always trace back to one thing: the number was never fully provisioned as a Cloud API phone number. Most people skip the step where you actually register the number via the API endpoint (the /v16.0/{phone-number-id}/register call). Without that, the whole thing sits in limbo.
And yes, you can do this without a BSP - but Meta's documentation reads like a puzzle designed by someone who hates their job. The coexistence doc contradicts itself in places, and the rollout was so gradual that half the accounts still don't have the feature flag enabled.
So before blaming coexistence, check if the number has actually been registered as a Cloud API number, not just linked in Business Manager. that's the root cause 90% of the time. Everything else - webhook, tier, templates - follows from that.