I wouldn't trust the log data so quickly if I were you. Looking at your SO post, the last log line (which is just before the return statement) says To get to writing output HTML took 0.725300073624 seconds, which means the request should be taking roughly that amount of time (slightly more than that to account for cleanup duties). But AppStats claims the request actually took 1867 ms, which is a huge difference. Your first hypothesis is accurate: it looks almost as if there was a pause in execution during runtime, but your application itself didn't even recognize/experience the time difference.
I would still stand by my original recommendation: try rerunning the index search operation and limiting it to only 5, 10, then 20 results and see if it makes a difference. If you see no difference, drop it down to a limit of 1 and retry. The reason I'm recommending this is that I think you're hitting a throttle somewhere, and I want to find the point where the throttle kicks in. There are a few other possible causes (mostly extraordinary situations such as machine failure, or periodic instance startup/shutdown) but I think this is the most probable.