Nicely done! I misread your answer at first and thought you had it wrong but saw that you are correct after working it out for myself. The Lambert W function is inverse to [itex]f(x)= xe^x[/itex] but taking the logarithm of both sides of [itex]x^x= y[/itex] gives [itex]xln(x)= ln(y)[/itex] not [itex]xe^x= y[/itex].
Instead, once you have [itex]xln(x)= ln(y)[/itex], let [itex]u= ln(x)[/itex]. Of course, then, [itex]x= e^{ln(x)}= e^u[/itex] so the equation becomes
[itex]ue^u= ln(y)[/itex], [itex]u= ln(x)= W(ln(y))[/itex] so that, as you say, [itex]x= exp(W(ln(y))[/itex].