1°: $player->setDisplayName(...); 2°: $player>setNameTag(...); //----- It may sound silly, but in my view (or reading ) there is no difference
The NameTag is just the Tag above your head. The DisplayName is like a NickName, it's shown in the PlayerList and the escape screen.
Display name and username are separate properties because the username can be used for identification and therefore its mutability is not desirable.