Quasi-linear pde $u_t + x u u_x = 0$, find shock time
As outlined by OP's self-answer, $$ x(t) = x_0\exp(t\phi(x_0)) \, . $$ Several methods can be used to find the shock times (see e.g. this post). Here we examine the non-ambiguous dependence to the initial data. One observes that $\text d x/\text d x_0$ vanishes at $t=t_S$ such that $$ t_S = \frac{-1}{x_0\phi'(x_0)} = x_0 + \frac{1}{x_0} \, . $$ Thus, for positive times, the classical solution breaks at the breaking time $$t^*_+ = \inf_{x_0>0} t_S = 2\, .$$ Similarly one gets $t^*_- = -2$ for negative times. This may be confirmed by a plot of the characteristics for several $x_0$.
There is no error in the problem statement. Instead, I made a silly mistake in solving the ODE system for th echaracteristics, wich turn out to be $$ x = x_0 \exp(t\phi) $$ From here on, the method I was trying to use, and that Harry49 explained in his answer.