I agree that keeping the time that cs_main is locked down would be good.It's even worse than the Big Kernel Lock :)  Finer-grained locking would be in order. 

In the meantime: We could do a TRY_LOCK multiple times?