This worked! Pre-computing the model solved the issue. I use one script to pre-compute the model, and write the output to a file. (This only needs to be updated weekly)
The Shiny app then assigns the written file to a variable to be used, instead of having to run the model as part of the Shiny deployment.
I haven't yet checked out asynchronous computing...