simplify logic, slightly optimize contended case for non-default mutex types