I just checked on two different BOINC versions and I'm not sure that my suggestion would solve this problem, as the estimated time is still higher than true time until the task begins to run, then it gets correctly calculated. Adding <fraction_done_exact/> helped me make sure that I always have one task waiting for when the previous one finishes (as I run with a buffer of 0), but for your issue it seems as though something else is at play.
In your preferences settings do you have "Max # of simultaneous PrimeGrid tasks" set to "No limit"? That may be restricting the number of tasks sent to you. Aside from that I'm not certain what could cause the issue.