I agree with much of your post, but it seems to me that NBA players make the highest salaries because the structure of the game and the level of competition put them in such high demand relative to supply.
NBA rosters are small, and only 5 players are on the court for each team at any time. There's also a huge drop-off in competitive performance[1] as you move down the bench from the elite players. Unlike the NFL, which has a substantial reserve of "replacement level" talent from college ball, there aren't that many folks who could play basketball at an NBA level and not be totally exposed. That's similar to baseball players, who are also among the most highly paid, even though there are more positions and rosters are bigger: There just aren't that many athletes out there who can bat above .200 against Major League-class pitching.
[1] http://www.basketball-reference.com/leagues/NBA_2016_leaders...