In my opinion we're far too quiet about mmap and allocation failures that will likely be fatal to the application. It generally takes some close inspection of +virtual or even +relay to detect running out of address space, e.g..
In my testing the added logs here shouldn't be too noisy - I've avoided them in the `try` functions and in cases where an error code is normal. I made the cross-process allocation failure a warning, because the target process itself will presumably log an error if it goes wrong.
I also explicitly logged errno in a few cases where we assume its value. That can help catch some exotic error cases.