Essentially you are looking for the last occurrence of a duplicated value in a column.
If, like me, you prefer MATCH, which has more explicit options than the ancient LOOKUP (you can, for example, explicitly specify 'find largest value', etc.), then you can use something like your original formula but add an IF to cover situations where there isn't an exact match.
In E2, copied down:
=TODAY()−IF(IFERROR(MATCH($B2,Running Log::$B,0),""),INDEX(Running Log::$A,MATCH($B2,Running Log::$B,1),0))
In F2, copied down (for testing to see if it's retrieving the right date-time):
=IF(IFERROR(MATCH($B2,Running Log::$B,0),""),INDEX(Running Log::$A,MATCH($B2,Running Log::$B,1),0))
Since you can have more than one flight on the same date I expanded the format to show the time while testing. You'll note the formula correctly locates the last occurrence.
If you're getting different results using this formula in your table, then it could be that the merged cells in the 'Running Log' table are throwing it off. In general suggest avoiding merged cells wherever possible in tables that will be referenced by INDEX MATCH and LOOKUP formulas.
SG
Data used for testing:
Date | Type |
9/20/1996 0:00:00 | PA38-112 |
9/27/1996 0:00:00 | PA38-112 |
9/27/1996 12:00:00 | PA38-112 |
9/30/1996 0:00:00 | PA38-112 |
9/30/1996 18:00:00 | PA38-112 |
7/21/2005 0:00:00 | SR-20 |
6/14/2010 0:00:00 | PA25-151 |
6/14/2010 17:00:00 | PA25-151 |
10/1/1997 0:00:00 | SR-20 |