Expiring HTLCs without free relay

R is the lowest 16 bits of nSequence, per BIP68.

You got the idea. This approach imposes a maximum coin height given a fixed nLockTime or, equivalently, a minimum nLockTime given a known coin height.

To clarify, Tx1 never expires. It merely publishes the preimage and creates the staging output for Tx2. Tx2 becomes invalid unless Tx1 has at least R confirmations by Tx2’s nLockTime.