chore(beta): template the remaining literal env vars [skip ci]
Portainer only lists a variable on the stack's Environment variables panel if the compose references it as ${VAR}. 29 values were literals here, so the stack page showed only 9 of the 46 variables the services actually run with.
Each literal now reads ${VAR:-}, so the effective configuration is byte-for-byte unchanged even if the Portainer stack env were empty, and every value becomes visible and editable in the UI.
AI_CORE_CHANNEL and AI_CORE_TIMEOUT legitimately differ between the whatsapp and telegram services, so they use per-service variables (WHATSAPP_* / TELEGRAM_*) - a single shared variable would have flattened them to one value.
Compose-only change, no image rebuild required, hence [skip ci].