Proving that the set of limit points of a set is closed
Your argument is correct, but incomplete: All you need to finish it is to ensure that you can find a neighborhood of $y$ contained in the neighborhood of $x$ that you began with (any will do, since all contain elements of $E$). Use the triangle inequality to find an appropriate radius for the neighborhood of $y$.
Let $\hat S$ be the set of all limit points of $S$. Prove that $\hat S$ is a closed set.
Proof: Suppose $x_0$ is a limit point of $\hat S$. Then given $\varepsilon > 0$ there exists $x \in \hat S$ with $\vert x - x_0\vert < \frac\varepsilon2$. Now $x \in \hat S$ is a limit point of $S$ so there exists $x' \in S$ such that $\vert x' - x \vert < \frac\varepsilon2$. Now $$\vert x' - x_0 \vert = \vert x' - x + x - x_0 \vert \leq \vert x' - x \vert + \vert x - x_0 \vert < \frac\varepsilon2 + \frac\varepsilon2 = \varepsilon$$ Thus $x_0$ is a limit point of $S$ and by definition is contained in $\hat S$. We have shown that $\hat S$ contains all of its limit points. By theorem that states that a set is closed if and only if it contains all its limit points, we have just shown that $\hat S$ is a closed set.