I would suggest digging deeper by logging and timing method calls. It can be anything from using a limited SQL Express database that only allows a small number of connections to security issues I'm guessing. But guessing is dangerous...
Logging is the way to go. Log4net is included with EPiServer so use that and see where all that time is spent. Or hook up some kind of profiling tool.
We have a site build on EPiServer 6 R2 and Commerce R2 SP2.
On the dev boxes there is no visible performance issues. On the demo server using an internal ip address there is no visible performance issues. On the demo server using an external ip, there's a 20 second wait time for the pages to render.
The time is spent between page load and end load according to aspnet trace.
Is this something that someone has seen before and immediately knows what the problem is? It looks like some kind of timeout issue to me.