Let me be up front and say I think this API has had some bugs in it. I find it a painfull API to work with.
From my personal experience if you are dealing with "real time" events you need to wait up to 90s after the time when the time occurred before the snapshot API will correctly work.
Sometimes it will work after 10s. Sometimes 60s. Sometimes 90s. Sometimes it never works.
Personally I use a loop. I tend to wait 30s before attempting to call the API. I then sit in a loop and try maybe 10 times calling the API with a 30s delay in between the calls. After that about 5 minutes has passed and if you haven't gotten it by then you're never going to get it.
The latest firmware, V4, specifically mentions having improved this issue. However I have not been brave enough to upgrade to V4 yet. The upgrade is one way - you can not downgrade. And V4 is beta.