Do they ?
Yes, there is an LLM feature that we have anthropomorphized as "reasoning" or "thinking", where an LLM has a scratch space where it can dump tokens that help to improve the final output.
Of course they do, how else do you think they manage to implement new features in large codebases, or to prove new theorems? But you don't even have to assume they do because of the results- you can read their chain of thought.
The article answers this question, at least to the extent it can be answered, at this time.
We see some signs of reasoning, but also we understand little about how they work.