Hi Caleb!
If you check out the FED3 example "FixedRatio1_MinPokeTime" (under Beta_Programs, see photo below) it may help you. This example just asks if the Left poke duration (fed3.leftInterval) is > 1000ms, but you could add a second contingency such that after they poke the FED3 decides:
1) if fed3.leftInterval is < 500 enter a 3s timeout
2) if
fed3.leftInterval is between 500 and 1000 ms they get a reward
3) if
fed3.leftInterval is > 1000 they get lights but no reward.
I think this logic might do what you want? Best, -Lex