My attempt is essentially a procedure with some reasoning as to why the procedure works. I'm almost certain the procedure works, but I don't know if this proof is strong enough to actually prove the claim. Any comments welcome.
Proof. Let $T$ be a tree of order $n \geq 2$. Select an arbitrary root $r$. We proceed by growing two distinct sets of vertices, $V_1$ and $V_2$, which we claim partition the graph so that no two vertices in the same set are adjacent to one another. Begin at $r$, placing it into set $V_1$. Let $adj(v)$ denote the set of vertex $v$'s neighbours. For each $u \in adj(r)$, add $u$ to $V_2$. Recursively apply the procedure, so that for each vertex $u$ we add to one of the two sets, we add all $w \in adj(u)$ to the other set. To show that such a procedure always produces a valid bipartition of $T$, notice that for any vertex $v \in V(T)$, none of $v$'s neighbours are adjacent to one another; if they were, a cycle would be formed, a contradiction. Therefore, for any $v$ it is always valid to place all of $v$'s neighbours in the same partition. Since $T$ can be rooted at any node, the claim follows.
The only place you've used that $T$ is a tree is where you said that none of $v$'s neighbors are adjacent to one another. A cycle of length $5$ also has this property; no two neighbors of a vertex $v$ are adjacent to one another. Yet that cycle is not bipartite.
Your construction is OK, but to prove that it works, particularly to prove that no vertex ever gets put into both $V_1$ and $V_2$, you'll need to be more careful. When you analyze carefully what would be involved if a single vertex got put into both $V_1$ and $V_2$, you'll find that, to avoid that sort of disaster, you'll invoke the fact that $T$ has no cycles of odd length. (In fact, of course, it has no cycles of any length, but cycles of even length don't cause any problem for your construction.)