I would have gone for |r| and |s| personally so no explicit rejection would be required. I wasn't sure that N-s was negative for all values of N,
You are showing an impressive level of ignorance here: N-s is _never_ negative, s is a
field element.
both DER encoding and ECDSA malleability are already addressed and not usable as a "malleability fix" argument for SegWit.
Malleability in Bitcoin goes far beyond just signature encoding malleability. Multistep multiparty protocols like
coinswap require that the other signer in a 2 of 2 not be able to invalidate a chain (or extreme amount of additional protocol phases); this can never be accomplished with a DL signature since they inherently must have a random input, so long as the signature itself is part of the identifier. Segwit's approach to eliminating signature malleability gives a guaranteed solution to all forms that would potentially invalidate a chain of transactions.
There has only ever been one other proposal that provided an equally complete solution, but it had the downside of doubling the UTXO set size and roughly doubling the amount of transaction hashing work.
It would be a side-chain if the changes weren't being implemented. I do indeed know nothing about LN.
Clearly you don't-- because this statement makes no sense.
The driver for SegWit seems to be purely LN
This is an rbtc talking point-- it has no basis in reality. Segwit is largely orthogonal to lightning, and proposed long after it. The reason people keep claiming it is because segwit is above reproach and lightning is less well understood and easier to FUD.
2. It is the architecturally correct solution for outsourcing the txID generation-that's it. If you are going to do that, then make it a plugin module then it doesn't need to be in Bitcoin at all and anyone can use their own, including legacy (maybe a default module). It is a poor solution just for malleability and a straight-jacket for txID generation.
You seem to be confused about what a txid is really used for. From your comments it seems that you think that wallets are somehow distinguishing payments that way. That isn't the right way to distinguish a payment... Bitcoin Core doesn't, it tracks outpoints (either as inputs for conflict handling or outputs for payments). No one cares much about the cosmetic implications of malleability, they're largely irrelevant.
Transaction IDs are an essential part of the Bitcoin consensus rules. A transaction selects the coins it will spend by specifying the transaction IDs of the transactions that created those coins. These IDs are included under the subsequent transaction's signature. If something happens to change a transaction's TXID then all subsequent descendant transactions are invalidated. This is what people care about.
No amount of module whatever can do anything to help that. So what you propose would only ad a cosmetic issue that almost no one cares about ('I can't look up the txid I was expecting in a block explorer')-- and if anyone cared it would already be solved, as it's not a consensus change.