fix a few possible crashes
realized that multiple listener threads were being spawn per process, this is wrong, one persistent on is enough
make same 1 reader thread like in wifi, fix wrong variable use, and possible missing key accesses