It looks from their GitHub repo that the signal server is a Java project [1]. WhatsApp's "secret" weapon for getting such great scalability for so cheap was choosing to use Erlang. I would like to believe that this technology choice must have played a role here (not that people haven't build massively scalable apps with Java/JVM).
Now, why the slow response to increase capacity? Are they perhaps not running on a cloud infrastructure, where adding more servers to the problems is as easy as a few clicks (or zero, e.g. with k8s autoscaling and other such tricks)? Perhaps, again for privacy/control, they're running their own metal at a colo or somewhere.
Finally, could it be their clustering system works in a way that prevents them from just "throw more servers to the problem" and is rather more intricate than this?
I think all this may be a fun "postmortem in the dark" experiment :)
[1] https://github.com/signalapp/Signal-Server