So, the issue with your argument is that you assume the Hilbert space of two particles is the tensor product of two one-particle Hilbert spaces, and then indistinguishability gives you a quotient of the two-particle Hilbert space. This is not the most correct way of thinking about it.
The correct way, going back to the (beautiful) original paper of Leinaas and Myrrheim, is to quantise the two-particles taking indistingushability into account during the quantisation.
I'll just summarise the idea here without talking about fibre bundles, for details it's worth going through that paper. My elementary knowledge of fibre bundles was enough to get through most of it in an afternoon (the part with spin is somewhat more confusing and also seems slightly fishy in a way I can't pin down).
If we postulate that two particles are identical, our quantisation itself must reflect that; that is, if we view quantisation as a process of assigning a basis element to every point in configuration space $(x_1,x_2)$ must go to the same basis element as $(x_2,x_1)$.
However, that is different from saying that $\psi(x_1,x_2) = \psi(x_2,x_1)$, since there's a lot more structure to the Hilbert space than just `assigning a basis element to every point in configuration space.' In particular, we usually require continuity and differentiability (I'll just call this smoothness, out of ignorance of details) of the wavefunction; there shouldn't be any unnatural jumps if we go from $(x_1,x_2)$ to $(x_2,x_1)$.
You should be wondering, why does this smoothness requirement give extra structure? For that, let's take a digression, based on Dirac's magnetic monopoles paper. Consider one particle in 3-d space. The wavefunction is defined only up to a phase, remember? Well, why then do we insist that the phase actually exists? The only thing that we strictly need is phase differences. So, if we take those words seriously, we are forced to conclude that the only reason it makes sense to speak of the absolute phase of a wavefunction is that some phase function that gives the correct phase differences exists. More precisely, there's a physically meaningful vector field $\kappa$ which encodes phase differences. Heuristically, we want this to be $\nabla \phi$ where $\phi$ is a phase function. But, this is only possible globally if $\nabla \times \kappa = 0$. If $\nabla \times \kappa \ne 0$ (as is the case when there's a magnetic flux; another case where this is possible, though not necessary, wherever the probability of finding the particle is $0$), what we can do is pick patches where $\nabla \times \kappa = 0$ and define a phase function within each patch. The restriction on the patches you can choose is given by the facts that $\oint \kappa \cdot dl \ne 0$ whenever the loop is such that any surface which ends on that loop passes through a point where $\nabla \times \kappa \ne 0$ whereas $\oint \nabla \phi \cdot dl = 0$ necessarily; no single patch can have one of these `non-contractible' loops.* With that restriction taken care of, suppose, for definiteness, you have two patches $A$ and $B$ ($\mathbb{R}^3 - (A \cup B)$ is the set of points where $\nabla \times \kappa \ne 0$); then there are two phase functions $\phi_A$ and $\phi_B$ and the consistency condition is that $\nabla \phi_A |_{A \cap B} = \nabla \phi_B |_{A \cap B} = \kappa |_{A \cap B}$. The takeaway is that there's a sense in which the wavefunction can be multivalued, and that's because we imposed smoothness on phase differences; and we need multivalued-ness if there are non-contractible loops.
Now, before we go back to two particles, suppose your space actually had a hole. Then, there would be no reason for $\oint \kappa \cdot dl$ along a non-contractible loop to be $0$. So, multivalued-ness is a general feature of spaces with non-contractible loops.
Now we come back to two particles. To review, we've assigned a basis element (and therefore a $1-$dimensional Hilbert space to each point in the $6-$d configuration space, with the constraint that we assigned the same basis element to $(x_1,x_2)$ and $(x_2,x_1)$. Another way to think about this is that we fold the configuration space itself, so that now we have some weird-looking space in which $(x_1,x_2)$ and $(x_2,x_1)$ are the same point (if the particles are in 1-d, this folded space look like what we get after folding a square piece of paper along the diagonal). Now, this folded space has a boundary -- the $x_1 = x_2$ bit. The main thing I want to show here is that there is a non-contractible loop here, and these non-contractible loops are qualitatively different in 2 and 3 dimensions.
Consider the wavefunction as particle 1 goes around particle 2, which is fixed at $a$ (this is not physical movement -- we're merely tracking the change in the wavefunction). In 3 dimensions, this loop is contractible; just change the plane of the loop till it doesn't enclose the other particle and then reduce its size. Therefore, in three dimensions the wavefunction is single-valued and your argument works. In 2 dimensions, however, it's not, and therefore the wavefunction may well be multi-valued. The particles for which this multvalued-ness turns up are called anyons.
Note: a lot of people will answer this in terms of adiabatic movement of particles around each other. The reason for this is that adiabatic movement approximates the `tracking the change of the wavefunction' that I described in the last paragraph.
*The word non-contractible seems a bit weird in my exposition. The intuition is this: if you took the regions where $\kappa$ has a curl to be holes in the space, then these loops would be ones which can't smoothly be contracted to $0$.