Salt length for a single password
You are correct that the function of using a distinct salt for each user is to thwart any batch advantage an adversary attacking one of many targets might have gotten out of precomputed tables.  If there are $2^n$ distinct salts and they're chosen uniformly at random for each user, it's only around $\sqrt{2^n} = 2^{n/2}$ users that a collision in the salts might happen so that the adversary might even get a chance to apply one precomputed table to many users.


Pick $n = 256$ bits and you won't ever have to worry about it.
Pick $n = 128$ bits and you probably won't ever have to worry about it even if everyone else uses the same hash function.
Pick $n = 64$ variable bits and an application-specific constant that nobody else uses and you're probably mostly OK because the precomputation of the table is expensive already, even if there are a handful of collisions in a few billion users.  But consider revisiting once you've hit a million users just to be safe.


No need for $n = 500$ bits or anything obscenely large like that.