> I prefer "Native American" because, as British Sri Lankan (lived in both countries) Indian just has a different meaning to me.
Well that's the thing, you're not indigenous American, so you don't really get a say. Neither am I, btw. We're getting into moral discussions here, but if anyone should be granted one thing, it's the right to choose for themselves what group name they prefer. There wasn't, generally speaking, a common name in the indigenous American languages for the people of the americas, separate and distinct from the word for "people" which would have included the invading conquistadors from Europe. So “Indian” was as good as any, even though it was already the name of a people halfway around the world. [Although to be pedantic, it was meant to refer to the people of modern-day Indonesia, Malaysia, and South-East Asia, not the Indian subcontinent. He thought at first he'd landed in Indonesia. Then he thought maybe Japan or China. He was a confused dude.]
It is right and proper that people should be able to decide for themselves what they want others to call them, and the indigenous people of the United States prefer to be called "Indians." The clunky term "Native American" was repurposed from a very different meaning to apply to Indians during the civil rights era, not by Indians themselves but by misguided activists and civil rights fighters who patronizingly thought they were doing tribes a favor by decolonizing their language. Ironically, the very act of mandating what terms they should use to describe themselves is peak colonialism.
If you go to tribal land and talk to the people living there--and I've had some wonderful conversations with people on the Hopi and Navajo reservations--they'll tell you that they prefer that you use their specific tribal name to identify them, but if you must group multiple tribes together then they prefer the term Indian, they've always referred to themselves as Indian, and they have no desire to change that, thank you very much.