As $U$ is not concave, it's expected that the solution will be a corner one. We consider two auxiliary problems:
\begin{equation}
\max\limits_{\substack{x\\s.t.\\ a-\tau\ge x\ge 0 }} U(x,a-\tau-x)
\tag{P1}
\end{equation}
\begin{equation}
\max\limits_{\substack{x,y\\s.t.\\ a\ge x\ge 0 }} U(x,a-x)
\tag{P2}
\end{equation}
Let $x_1$ and $x_2$ be the respective solutions of P1 and P2 and $u_1$ and $u_2$ the respective values of the problems. If $x_1<a-\tau$ and $u_1\ge u_2$ then $x_1$ and $y=a-\tau-x_1$ solves the original problem. If $x_2=a$ and $u_2\ge u_1$ then $x_2=a$ and $y=0$ solves the original problem. In all other cases, the original problem does not have a solution.
For example: Take $a=1$ and $\tau=-1$ and $U(x,y)=4x^2+y^2+x+y$. The constraint is $x+y=2$ as long as $y>0$. So, $U$ increases as we increase $x$ and reduce $y$ but if $y$ hits zero then we are forced to set $x=1$ since the constraint discontinuously changes to $x+y=1$. But $U(2-\varepsilon,\varepsilon)>U(1,0)$ for small $\varepsilon>0$. In sum, we would like to choose $(x,y)=(2,0)$ but due to the discontinuity in the function defining the constraint set, the constraint set is an open. We can approach $(2,0)$ with points in the constraint set but the limit point $(2,0)$ does not satisfy the constraint.
In the new edit version of the question $\tau>0$. In this case, you just need to compare $u_1=\max_{\substack{x\\s.t.\\ a-\tau\ge x\ge 0 }} U(x,a-\tau-x)$ with $U(a,0)$. If the first is greater and $a-\tau>x_1$ then the solution of P1 is your answer. If the second is greater then $x=a$ and $y=0$ is your answer. A solution always exist because $U(a-\tau,0)<U(a,0)$ by $U_x>0$.
If $U_{xx}U_{yy}-U_{xy}^2\ge 0$ then your function $U$ is convex. In this case the solution will always be a corner point: the $(x,y)$ that maximizes $U$ subject to your constraint will be either $(a,0)$ or $(0,a-\tau)$.