I'm American and I say British because I would hate to inadvertently offend someone by calling them something they aren't (e.g., calling a Welsh person English), if I can't be absolutely sure of where they're from. If I do know the person's exact nationality, I'll use it.
But I think the fact that the language we Americans speak is called English may tie our tongues at times. "He speaks English with an English accent" just sounds weird to me. My 'Mercan brain has an easier time with "He has a British accent" or "He speaks British English." (Which to us means the way they talk in England, not Scotland or Wales or Northern Ireland.)
That's a good point. I'd also add that my experience, as an American, is that a lot people here aren't really sure of what the difference between British & English, or between England, Great Britain, and the UK. So they are used interchangeably.
People generally know that Scottish is Scotland, and Irish is Ireland, but they may not know that there are 2 components of Ireland - one its own country, and one that's part of the UK. And my guess is many people in the US would not know that England, Scotland, Wales, and Northern Ireland are the 4 countries that comprise the UK, nor that British is the umbrella term for someone from any of these countries.