This problem is detailed here: http://support.microsoft.com/kb/2745448, and it's a result of the SSRS service checking for certificate revocation lists (CRL). If you're like most people, you've got a firewall blocking Internet access from your server, so each call for a CRL has to time out before SSRS will start.
The above KB article mentions a handful of ways of dealing with this problem; the most-frequently used method is to increase the service start timeout in the registry. This works, but it requires a server reboot. And it doesn't really get to the root of the problem, that SSRS is taking a long time to start.
Now, generally a CRL is a good thing, even if only in theory. But if your server can't get to the Internet, anyway, there's precious little danger of it getting to a revoked certificate. After all, you're not using the server to browse the web. Right?
So: disable CRL checking within SSRS. This is done with the generatePublisherEvidence element in the ReportingServicesService.exe.config file.
By default, this file is in the <drive>:\Program Files\Microsoft SQL Server\MSRSxxx.MSSQLSERVER\Reporting Services\ReportServer\bin directory.
To disable CRL checking, add the following just before the </runtime> tag at the bottom of the ReportingServicesService.exe.config file:
<generatePublisherEvidence enabled="false"/>If SSRS is slow to start as a result of CRL checking, this will dramatically speed the service startup. One benefit to doing this, too, is that it doesn't require a server reboot or anything to take effect: it'll work at the next SSRS start.