You're seeing the interplay of caching between the sites and the API.
The short of it is, both SO and the API implement fairly aggressive cache policies. I won't go into SO here, for one its always changing, because it varies depending on the pages, and age of the content.
The API, more simply, caches every response for 1 minute. So, if two consumers are hitting the same route (with the same parameters) within 1 minute they'll get the same result, assuming the cache was empty when the first request was received*.
Consequently, its possible for a "result" to appear in the API immediately (if the cache is empty), or after a delay (if the cache is not). Whether or not a "result" appears to be in sync with the site depends on how the user visits the site (logged in or anonymous), and the page viewed (as noted before, the policy varies).
So, yeah, ultimately this is by design.
*Note that things get complicated when you start accounting for network latency, all of this discussion is from the server's perspective.