bugfix: lock for async & sync loading the same module; bugfix: replacing module.exports now affect exports