Lots of stuff to comment on. I'll select a few items
I don't think play between 3.4x and 3.5x is under-represented for a few reasons.
First, players do play up. Many teams have a player or two, a few teams even have around half the roster filled with players playing up. This certainly results in some matches between <=3.50 and >3.50 players.
Second, and more importantly, a 3.5 is necessarily in the range 3.01-3.50 only at the end of the year for which they obtained that rating. As they play matches in the following year, their dynamic rating will change (the USTA calculates dynamic ratings every night) and so a 3.4x who has a few good results to start the year very well may be 3.5x and then even a 3.5 match against a 3.4x becomes a 3.5x vs a 3.4x. And some players dynamic rating will go even higher than that during the year so 3.6x vs 3.3x (or lower) in a 3.5 match is not uncommon.
So the head to head ratings in a match are not as compartmentalized as you think.
For this next section I think it is useful to differentiate between the rating to the half point that the USTA publishes, and the dynamic rating to the hundredth that is calculated daily but not published. I refer to the former as a player's level, and the latter as their rating.
Regarding self-rates, they have no rating to start, and only obtain a rating as they play matches against other players with ratings. Their self-rating is just used to determine what level they can play, not an actual starting rating. This is different from some Elo based systems where players are given a default rating and if it is inaccurate can lead to point inflation/deflation or scenarios like you describe. So self-rates with NTRP don't have this issue, at least not to the degree a system that gives players default ratings does.
That doesn't mean players aren't getting better or declining and naturally their rating and level will be a trailing indicator of that. The published NTRP level can be significantly off both because it is so general, but also because it is only updated/published yearly (unless there is a pandemic and the USTA makes the wrong decision to not publish, or unless the publish early start lists for early start leagues, but oh yeah, they did away with that too), but even the dynamic rating can be a lagging indicator for someone who has improved a lot and continues to do better than expected. But this is the same with any rating algorithm for the most part, short of an algorithm that would look at recent trends and extrapolate where they are headed and preemptively establish that as their current rating.
Regarding strikes, the USTA is very opaque about the thresholds, but experience and some documents (that may be dated) one can find would seem to indicate 2.5s can play more or less a full level above their current level and not be DQ'd, and the threshold gets smaller as the level goes up but even a 4.5 can likely play a few tenths above their level without being DQ'd. The rationale is that the USTA doesn't want to punish someone who self-rated fairly, but naturally improves. That natural improvement is anticipated to be quicker at lower levels, thus the relatively higher thresholds.
Of course, when they don't publish at 2020 year-end, that creates a glut of self-rated players that now have two years to improve increasing the chances DQ's will happen, and as has been discussed here and on my blog, the DQ rates do seem to be up.
There are two types of appeals, automated and manual. Automated appeals do have objective criteria (although the USTA may change it from year to year and is again pretty opaque about what it is) and if a players rating after the year-end calculations are done meets the criteria (say, no more than 0.05 above the bottom of the level), they can click a button on TennisLink and have the appeal granted. Separately, someone can file a manual appeal that is reviewed by a district/section rep or committee, these are generally done for medical appeals or self-rate appeals where the guidelines/questionnaire slotted a player at what is believed to be the wrong level.
If you haven't yet, find my FAQ as it covers parts of this and more.