Messages are never deleted, only hidden, a GDPR violation
This is partly true. Messages are not really deleted until you delete your account.
Deleted usernames are also not deleted, only hidden, same thing
This is true
Stuff remains on federated servers even if you delete it
If everything works according to plan it should be gone, though there might be cases, where some instances don't update.
These question were also answered in this github issue.
EDIT: Imho this should be changed. At least the first two points. It does not need to be 100% foolproof on other instances, as they may be down when the deletion happens, but I think that the instance, which hosts the content should NOT have the content after deletion. Another idea would be to edit comments / posts to just say "[removed]".