Why does index contraction have to be done between upper and lower indices? If I had to give a guess based on limited understanding, I would expect it to be something to do with the resulting object no longer obeying tensor transformation properties.
However, if that is the case I have one further question. If I contract the indices of a (2,0)-tensor I obtain a scalar, which is (by definition?) a well behaved tensor. Why is this operation invalid? Or is it not invalid, it just doesn't return a meaningful object?
 A: Let's consider a simple explicit example of how contracting two upper Lorentz indices or two lower indices doesn't produce a Lorentz invariant.
A particle has energy and momentum. The particle can be observed in two different inertial frames which might be moving relative to one another. In one frame the energy is $E$ and the momentum is $\mathbf{p}=(p^x,p^y,p^z)$. In another frame the energy is $E'$ and the momentum is $\mathbf{p}'=(p'^x,p'^y,p'^z)$.
I'm writing the $x$, $y$, and $z$ as superscripts to be consistent with the four-vector notation that I'll introduce in a bit.
The Lorentz transformations ensure that the particular combination $E^2-\mathbf{p}^2$ is invariant. In other words
$$E'^2-\mathbf{p}'^2=E^2-\mathbf{p}^2$$
in units where $c=1$. For example, the Lorentz transformation of energy and momentum when the primed frame is moving with velocity $v\hat{x}$ relative to the unprimed frame is
$$E'=\gamma(E-vp^x)$$
$$p'^x=\gamma(p^x-vE)$$
$$p'^y=p^y$$
$$p'^z=p^z$$
where $\gamma=1/\sqrt{1-v^2}$. 
You can verify with a little algebra that for this particular transformation
$$E'^2-(p'^x)^2-(p'^y)^2-(p'^z)^2=E^2-(p^x)^2-(p^y)^2-(p^z)^2$$
You can similarly verify that $E^2+\mathbf{p}^2$ (with a plus sign) is not an invariant. (In fact $E^2-\mathbf{p}^2$ is the only quadratic Lorentz invariant that can be formed from the energy and the momentum.)
So, what does this have to do with tensors and contraction?
The contravariant energy-momentum four-vector is defined to be
$$p^\mu=(E,p^x,p^y,p^z)$$
and (in Minkowski space with signature +---) the covariant version of this is
$$p_\mu=(E,-p^x,-p^y,-p^z).$$
Now consider three tensors -- $p^\mu p^\nu$, $p_\mu p_\nu$, and $p^\mu p_\nu$  -- and look at what happens when we try to contract the two indices of each one.
$$\begin{align}
\sum_\mu p^\mu p^\mu&=p^0p^0+p^1p^1+p^2p^2+p^3p^3=E^2+(p^x)^2+(p^y)^2+(p^z)^2\\
&=E^2+\mathbf{p}^2\quad\text{NOT AN INVARIANT!}
\end{align}$$
$$\begin{align}
\sum_\mu p_\mu p_\mu&=p_0p_0+p_1p_1+p_2p_2+p_3p_3=E^2+(p^x)^2+(p^y)^2+(p^z)^2\\
&=E^2+\mathbf{p}^2\quad\text{NOT AN INVARIANT!}
\end{align}$$
$$\begin{align}
\sum_\mu p^\mu p_\mu&=p^0p_0+p^1p_1+p^2p_2+p^3p_3=E^2-(p^x)^2-(p^y)^2-(p^z)^2\\
&=E^2-\mathbf{p}^2\quad\text{AN INVARIANT!}
\end{align}$$
The lesson is that contracting two upper indices or two lower indices does not produce a Lorentz invariant, while contracting an upper and a lower does produce a Lorentz invariant. (If there are additional indices, it instead produces a tensor whose rank is lower by 2.)
This is why when using Lorentz index notation, we never contract two upper or two lower indices. It doesn't produce a valid tensor! (Remember: Tensors are not just indexed quantities. They have to obey very specific transformation rules when the coordinates are transformed.)
This is not a general proof that contracting an upper and a lower index produces an invariant or a lower-rank tensor. You can find that in any textbook, using the properties of a general Lorentz transformation $\Lambda^\mu{}_\nu$. Instead, this is a concrete example to make what happens in one simple case really explicit.
A: Under coordinate transformations, vectors transform with the Jacobi matrix, whereas covectors transform with its inverse. If you contract an upper and a lower index, these operations cancel, and the result will be invariant under coordinate transformations.
In contrast, summing over two indices in the same position generally won't give you an invariant. Take two-dimensional Euclidean space as an example. In Cartesian coordinates, the metric tensor is just the unit matrix, with a trace of $2$. In polar coordinates, the angular matrix element takes up a factor of $r^2$, yielding a trace of $1+r^2$.
A: 
Why is this operation invalid? Or is it not invalid, it just doesn't return a meaningful object?

The point is that a scalar isn't just any real number, it's a real number which transforms between frames appropriately. (Specifically, the correct transformation is that it shouldn't transform at all.)
For example, "the energy of a ball" isn't a scalar, even though it's a real number, because it depends on the frame, when a scalar shouldn't. "The mass of a ball", however, is a scalar. If you break the usual rules of contraction, you will get real numbers, but they won't be scalars. 
