Remove partial matching duplicate lines and retain longest line
JavaScript (ES6),  85 82  79 bytes

a=&gt;a.sort((a,b)=&gt;-!b[a.length]).filter(s=&gt;a[k=/reminder \d+/.exec(s)]^(a[k]=1))

Try it online!
How?
We first sort all strings from longest to shortest.
a.sort((a, b) =&gt;
  -!b[a.length]  // 0 if 'b' is longer than 'a', -1 otherwise
)

We then filter the strings, keeping only the first occurrence of each reminder N key. The underlying object of the input array a[] is re-used to keep track of the keys that were already encountered.
.filter(s =&gt;
  a[k = /reminder \d+/.exec(s)]
  ^
  (a[k] = 1)
)