I'm using solaris myself, and have seen this on both sparc and ia32 machines...
my understanding of the difference between begin and begindetached is that all threads count towards the configured maxthread limit, but begindetached threads are automatically reaped while begin threads need to be explicitly waited for...
I guess some experimentation is called for...