Actually storing InvalidOffsetNumber in lp_off is a bit bogus in the first place since lp_off is unsigned, and InvalidOffsetNumber is -1, so I fixed that as well.
I see InvalidOffsetNumber as 0 in off.h:26
#define InvalidOffsetNumber ((OffsetNumber) 0)
So I think we should be OK to use that to indicate redirect-dead pointers.