You are right that hosting multiple applications on one application server / web container (or Tomcat or another) has advantages.
You mentioned a reliability issue where one application can cause another to crash. But let it simplify: even if you have only one application, you still need 24 * 7 availability. To achieve this, people usually run more than one instance of the application server with the same application on each of them and a load balancer at the entrance to the site . The same applies to multiple web applications. Just run N (at least) application servers with the same set of deployed web applications and a load balancer. You probably need some kind of watchdog timer that restarts the server if it is not working, or if it stops responding, etc.
In some cases, clustering is required. But this is a different story.
Alexr source share