fix compact and new_records

- compact check for concurrent compactification was invalid
- compactsize can be checked outside of exclusive
- new_records: loop is only necessary if we are not already exclusively locked