There is no explicit limit placed on websocket connections.
Note that nginx and its websocket support is used by cloudbees. Nginx' async design is such that the bottleneck is generally IO - so it is rare that this layer (nginx) is the bottleneck. It is far more likely to be the application. Nginx can cope with many many connections - but each one has to end up being services by your application - so that typically is the bottleneck.
Thread starving can happen, and it really depends on the application and its framework used - different frameworks can have different failure modes.
The bigger issue is what framework you are using in your application - and then how many instances of that you want to run (and pay for).