It isn't the convention to address others directly by their usernames, so when someone breaks with that convention, they're doing so for a reason. To hide behind "it's just a name", as if the name innocently mentioned itself, is misleading.
Ditto for the oldie-but-goodie, "It's a fact. What problem can you possibly have with facts?" - as if a fact were a fish that catches itself and serves itself for dinner. There are infinitely many facts and they don't select themselves, as I often tell HN users who make this argument: https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu.... Sure it's a fact—and language has multiple levels of meaning. It's common to attack on one level and then switch to another level to defend. It's never just a fact. What the fact is being used for, and what other facts are left out, are just as relevant.
Sometimes people explicitly address someone by their username because they want to express extra friendliness, but in a hostile context it generally ups the ante and signals additional aggressiveness. This is especially true when (1) there's something about the username that is relevant to the argument, so someone's own name can be used as a weapon against them, and/or (2) you replace the literal username into something closer to the person's real name, or use it to look up their real name and use that instead. That's the equivalent of stepping close to someone and getting in their face, if the argument were in person. You guys did both #1 and #2 in this thread. (It's odd that you say "it's literally his username" when they were clearly different.)
Using personal details in this way—like people's names or (another common case) their employer's—comes across as menacing. Sometimes there is an overtone of doxxing to it, a sort of "I know who you are and am prepared to cross lines about this", or if not of doxxing, then of the online callout/shaming culture: "We're going to stick this to you". I don't think these aspects were in play in this thread, but they were in the other case I linked to above.
Something in this case was even worse. You guys changed the username into a plausible surname which is ethnically marked, because it was ethnically marked. In an argument about China, taking an obviously Chinese substring of the opposing username and putting it in the other person's face is a strong indicator of an ethnic attack. Obviously that's a bannable offense on Hacker News. The fact that you repeated it after another user started doing it is particularly awful, because now we have the semblance not merely of an ethnic attack but a gang attack. I'm sure you can understand why moderators would not let that pass.
Now let me walk this back slightly. I'm not saying that the above is what you had in mind. I can't know that. But these are strong patterns that lead to strong priors, so if you do what you did without supplying disambiguating information, that's how it's going to be interpreted (https://hn.algolia.com/?dateRange=all&page=0&prefix=false&qu...). In this case the burden is on you to disambiguate. If I ask myself how one would do that in such a comment, I find it hard to imagine an answer. ("It’s okay to have differing views, Wang. I'm not saying your name because it sounds Chinese..." sure doesn't cut it.) But people's intent often doesn't come across and leads to great misunderstanding, and if you say that's what happened here, I believe you.
On the third hand, though, sometimes both can be true: that there was an aggressive subtext and the person didn't consciously intend it. We're all complicated creatures. We've had to ask you three times in the past not to attack other users personally, which is well into the 99th percentile, so maybe there's some sort of pattern.