Benefits of Electron:
* Much more active development, more frequent releases, more quickly addressed bugs (this is huge)
* More active ecosystem
* Lower level API that requires you to perhaps do a bit more work to achieve the same cross-platform behavior but gives more control and fewer weird issues
* Much better documentation
* Much better error reporting. It may have just been me, but when I had a JS error in NW.js, the process would simply crash with no feedback whatsoever (which as you can imagine is infuriating). I opened a couple issues about it and never got any help or feedback. Electron pops up a dialog with a stack trace.
Edit:
* Another major difference is that NW.js uses a shared global object for communicating between the main process and renderer (BrowserWindow) processes. Electron uses evented message passing using an `ipc` (inter-process communication) module that makes for more robust code.
* Besides being lower-level, the API is just (IMO) a lot better/more powerful in general
You could probably send messages to a log instead of the developer tools (might require editing the nw.js source code).
Regular JS in the renderer processes showed errors in the console as usual. However, if I tried using one of the NW.js APIs incorrectly in the renderer, or there was any error at all in the main process (which doesn't have devtools) it would just crash.