I'm almost done with the implementation. I've added a field to the native interface configuration method so that it emits the top stripped block height in the case where bip141 is active. This makes the block explorer and callers aware of the behavior, as it cannot be observed in the blocks/txs alone. The node will drop peers requesting witness blocks at/below the stripped height, and will request non-witness blocks for any milestone/checkpoint block when the service bit is set. It also skips the witness commitment identity check for these blocks. The only challenge is avoiding a small performance hit from checking this context for each hash in get_data requests.
(edited)