AI chatbot message with avatar and loading state, for conversational threads
With no loadingPhrases, the loading state is a plain "Thinking".
Pass loadingPhrases to cycle through them instead, one every loadingPhraseIntervalMs, starting at the first phrase.
How long each loading phrase holds before the next one fades in.
Phrases cycled in order while `isLoading`, starting at the first. If empty, the message falls back to a plain "Thinking".