Just a note incase anyone else encounters this issue.
I found that if I set the timeScale to 0, then my UI buttons would not respond to any interactions. To solve this, I simple removed the line where we set timeScale to 0.
This may be because Iโm using Unity 2021, or it may be something to do with receiving inputs from the new Unity input system - or some combination of everything.
However, in short - if using 2021 and the new input system, skip setting the timeScale to 0.