Most other social chat platforms allow you to have a display name that is already used by other people, why does VRChat require a unique display name?
I can't think of a platform that differentiates between usernames and display names, but does not allow duplicate display names like VRC. Usernames only and usernames + display names are fundamentally orthogonal in their goals. If you want to maintain the unique display names, you should get rid of "display names" and set usernames to the current display names of users since the design patterns are at odds with the established norm.
Now that invisible characters get filtered when you change your name, people will need to visibly mangle their names to get their desired display name. This serves no purpose in a social game where the only method of communication is voice where people will always say the intended name without the mangled characters. It does not allow any more differentiation from just having a unique username that's easily accessible.
Additionally to facilitate this change, the menu UI should also have the username added under the display name when you have a person selected. The website already does this. It should show the username when you receive invite/friend requests as well.
User names should be restricted to a reduced set of characters that are easily readable. User names should be changeable separately from display names via the website.