People are always going to want to make NSFW content for VRChat, just as they will want to in nearly every other social platform. Not only that, but they are going to want to have the opportunity to share the things they make with their friends.
Because of this, the easiest solution to keep the NSFW content from going public and allowing it to still be used freely would be to actually make use of the Avatar Tags during upload, and block the use of NSFW tagged avatars from Public worlds.
Not only will this allow people to exercise creative freedom and express themselves behind closed doors, but it will also be a more effective way of keeping things clean as temporary public world bans for the avatar creator is hardly effective for preventing long-term abuse, especially if it wasn't the avatar creator themselves who took it into a public world in the first place.
Having someone get dropped into the default robot avatar if they load into a public with a flagged avatar would be a very clean and easy solution, and will also work to reduce the moderator workload as those who properly tag their uploads will no longer be a concern. That way those who evade the restrictions by not tagging will still get reported and could even receive harsher bans for it.