I get the same with linux with x86_64, so it is not to do with OS X specifically. Nor is it anything specific to lwt.unix: I seem to get the error with any attempt to combine the --output-complete-obj flag with ocamlfind’s -linkpkg. I also seem to get the same problem if I use dune instead of ocamlfind and include a line (modes native object) in the relevant executable/library stanza.
So it seems to be a problem with the implementation of the compiler’s --output-complete-obj flag. From a very limited amount of experimenting it appears I can work around the problem on a toy example by using the --output-obj flag instead and linking libunix.a, libthreadsnat.a, libasmrun.a and liblwt_unix_stubs.a into the final executable by hand. You could try giving that a go - I haven’t tested it further to say more than that.