FindEQ and NextEvent will work, you can reverse the dates so that it works backwards in time. You can use an early time for the end, e.g. 1 year, to walk backwards until you find the first occurrence.
Time (of last 0) = FindEq('Tag1','*','*-365d', 0)
Time (after last 0) = NextEvent('Tag1',FindGT('Tag1','*','*-365d', 0))
Value (after last 0) = NextVal('Tag1',FindGT('Tag1','*','*-365d', 0))
Edit: Okay, read your question properly and altered my post.
Just keep in mind that doing it via the 'find' functions like FindEq, FindGT, FindLT can be very expensive, particularly for longer time ranges and PI points with higher density data. If this is something you want to roll-out to many different attributes/points and keep as a reference, you may want to consider setting up naturally-scheduled analyses with the logic to check and store the appropriate events/times as the events come in. This way you have the value stored for reference, rather than needing to compute it each time with FindEq/FindGT/FindLT.