Tom,
Your /etc/hosts file example look correct to me (for Tile2). If you are using "generic" names for the SPECjAppServer config (i.e., specemulator, specdriver, dbserver, appserver), then you have the correct idea. Technically, each Tile's client and SUT VMs need only know about their own Tile's VMs IPs and the IP of the prime-controller (aka, 'master'). I generally configure a large /etc/hosts file that has all of the clients and SUT VMs listed with their IPs, copy that to all of the VMs, and then lastly, append the "webserver, appserver, emuserver, dbserver, mailserver, ...etc" to the correct entry location in /etc/hosts for each client and SUT VM. (This can be automated via a few "grep" and "sed" commands, assuming the Tile# is part of the VM's hostname, and the naming scheme is consistent across tiles).
The Control.config file is used by the prime-controller (a.k.a. "Master") only. The application specific initialization calls are made to the individual clients using this master Control.config file. Each client will use it's local workload (web, mail, app, batch) configuration files, however. (This allows specifying unique hostnames in the workload configuration files, but it sounds like you are not doing this, and are using 'generic hostnames' for client<-->SUT VM communications - which is fine.)
As for the errors you are seeing, those look like they may be QoS related -- i.e., a performance bottleneck rather than a misconfiguration, perhaps.
You may want to check your network utilization (i.e., 10Gb NICs are needed if running more than 1 tile over the same SUT NIC port). Also check CPU utilization's of your client VMs and webserver, etc... As for performance tuning, optimizations, and scaling up to many tiles, that is beyond the scope of SPEC's support capabilities. However, it sounds like you are close to a successfully running multi-tile configuration.