Not sure if you remember the problem we had with Daylight Savings Time last year - but basically when adding jobs to the queue they have a time when they should be processed - and most times this time is "now" or the current time. Well with the DST problem "now" was actually set in one hour's time - so some jobs just sat there for a while.
We have seen a couple of recent cases where time differences between servers can give this same problem. A server puts a job on the queue and the timestamp for "now" gets set a couple of minutes in the future - because the SQL Server machine doesn't have the same time as the Project Server machine. When the queue gets to this job it will just let it sleep until the right time arrives. This can look like a slow queue, when in fact it is doing what it is told. Keeping your servers clocks in sync will avoid this problem. The ULS logs will show this as jobs sleeping when there does appear to be any reason. In most "sleeping" cases the reason appears in the log - such as a missing custom field in the reporting DB will put a project reporting publish to sleep.
Technorati Tags: Project Server 2007