The name that Englishmen use for themselves is English when they want to be specific, British when they want to speak of the Island from which they come, and citizen of the United Kingdom of Great Britain and Northern Ireland when they want to be technically correct. People from the USA are Americans in the same sense in which Canadians, Brazilians and so forth are. When a person from the USA wants to be specific about their nationality they have no convenient short single word name for the USA so they are obligated - for brevity - to choose something less accurate than saying I am a Citizen of the United States of America. Most decide to use American and hope that everybody will accept that they mean a USA person. For the most part people do accept that nevertheless is it inaccurate imprecise language. So if someone says "American? where specifically in the Americas do you come from, what country is your homeland?" they'd need to give a more precise answer and would probably say "The USA" or "The United States of America" just as an Englishman might give "England" as his more precise answer to a similar question if he had said "I am British" as his first answer.
Of course, because all Englishmen are the same.
Some English people identify as English, some as British, some as European. Any or all of those identifiers are geographically accurate. Some English people refuse to identify as European because they don't want to be associated with the EU even if they do live in an area that, geographically speaking, is part of Europe. Some identify as European first and British second. Some identify as British first and European second.
I have to say I have never heard any English person identify themselves as "a citizen of the United Kingdom of Great Britain and Northern Ireland".
As you say a Canadian is technically an American but can also call themselves a Canadian. Someone from the USA is an American but has no term that doesn't technically also include people from a range of other nations. But since Canadians, Brazilians, Venezuelans etc don't typically call themselves "Americans", by the process of elimination someone who does say they are "American" is probably from the USA and not from Uruguay.
I still wish people could leave well alone and stop acting like a term in standard use for hundreds of years has suddenly become offensive.