Back when the paywall feature was added to Nosmero I didn't see an NIP and missed the PR #2156 discussion. 100% agree on using a universal solution.
Currently Nosmero is: per-note one-time unlock. Kind-1 events carry an ['encrypted', ciphertext] tag (AES-256-GCM); the key is custodied by our backend and released over HTTPS after we verify an on-chain Monero tx_key against the receiving subaddress. Public preview text sits in the event body so the note still renders in other clients. Source: js/paywall.js + api/paywall.js at github.com/grahamonero/nosmero.
Regarding the PR discussion, I understand the current draft is focused on memberships with kind 1163 and defers individual pay-per-view content to future additions. I like the idea of subscriptions though; the goal of Nosmero has been to get content creators paid in XMR and subscriptions would be a great fit.
I can share Nosmero's production data on per-content unlock on the PR, what it looks like and how on-chain proof-of-payment fits. It did get me thinking about an optional ['proof', method, data] tag for portable proof-of-payment which survives the access list being GC'd. It works cleanly for XMR (txid, tx_key) and I think it would work for Lightning too (paid invoice).
