noisetank
Check the collision box X values on each tine to make sure they are identical (set them to whole numbers). If you have Pixel Rounding set to OFF, and the values are fractionally different, the fork may not collide correctly.
EDIT: This goes for the two boxes as well.
Here's a capx:
https://dl.dropboxusercontent.com/u/12667027/ForkTest.capx
Good advice! This wasn't the solution, but that fact about pixel rounding was new to me and your capx was helpful in showing that the issue is definitely specific to my events.
It turns out that my "returning" boolean was getting switched on too quickly, so the second collision wouldn't occur. Adding a small delay (Wait 0.05 seconds) seems to have fixed that, although it's kind of annoying to see the second block lag after the first. I can probably do some tinkering to try and eliminate that, though.
Thank you for the help!