safe_nls works minimally

will fail with bad data; returns correct nls objects under ideal
circumstances