* I'm just posting the below as info - these are all good suggestions and I appreciate them all. *
That seems like it's a feature more specialised for the payment-request page itself, not a general use interface to control Electrum or receive notifications for other addresses and events.
You can use the importprivkey command line function to import private keys into the wallet.
I tried importprivkey from the cmd line before, but that only works if I stop the software first. Otherwise it writes to the wallet, and the live one doesn't reload it, and after it's closed it saves the wallet in memory apparently. The 'importprivkey' isn't something I will want to use anyway: I'd prefer to subscribe to addresses only. But that's no problem, as I have a new plan now.
If I could get RPC to work, I could make very good use of its commands like listing unspent tx outputs. I could simply hook a bitcoin daemon to get notified of unconfirmed transactions & new blocks, send the info to my daemon which would request more info from Electrum, then it could update the database and send out any notifications.
One problem is that I'm still very confused about the basics of Electrum. I'm running it as a daemon, but can't get its RPC to work. It only ever listens on the daemon.sock unix socket. Never JSONRPC. And running an Electrum command at cmd line doesn't even use daemon.sock to communicate with the daemon (I deleted the socket, requested a command, it still executed fine). I don't know if two Electrums ran concurrently or whatever happened in the background. In the long run I wouldn't want to launch a process for every Electrum request (like retrieving utxo for an address etc).
*Update: it turns out launching the app starts the daemon temporarily to give it commands if it can't reach it. And RPCJSON I'm not sure if it exists with Electrum but no need anyway, I'll just connect to an Electrum server rather than the client's daemon. It might not even exist anyway.