Just a thought on Asynch service, if I understand correctly, you can install it on a separate server, or you can put it on multiple load-balanced servers, but not both (a separate load-balanced cluster from the front-end). If you use NLB for CRM servers,
every server in the load-balanced cluster must have at least the Application Server role and Organization service role, and must have all the same roles. I could be wrong, so if anyone is doing it differently, I'd love to hear...
Useful article about Asynch on multiple servers:
http://blogs.msdn.com/b/emeadcrmsupport/archive/2014/03/07/common-queries-regarding-dynamics-crm-asynchronous-service.aspx
Scalability will depend on things like the impact of your security model and design choices. Read the white paper
Scalable Security Modeling with Microsoft Dynamics CRM 2013 for good information about this.
Performance depends on your application server design (eg hardware, load balancing - although generally load balancing improves High Availability more than it provides sheer performance gains), SQL server configuration (right down to optimal disk IO and
up through things like index maintenance plans, using SQL 2012 Always on to offload reporting to a second server), client software and hardware, network performance improvements (eg using WCF compression combined with https if you have heavy use of the Outlook
client) and so on....
It's a huge topic really, and almost everything you do will be a trade-off between performance, cost, complexity (which leads to more cost and things like DR issues), and actual business needs.
Hope this helps.
Adam Vero, Microsoft Certified Trainer | Microsoft Community Contributor 2011
UK CRM Guru Blog