That makes sense now, I guess in my limited use on larger boards I never dreamt of anyone having 9000+ PMs, or even 3 or 4k!
What I changed will mesh better with the threads code (ie its more compliant), but you are right, it won't make it any faster per se. The way Threads typically gets around this issue would be to add a couple of fields to the Users table that track the PM numbers.
The downside is that these would need to be constantly updated due to deletions and additions, but storing a hard number is really the only way around huge PM users having a delay.