This is not an appropriate method for timing how long something takes to render, since the CPU and GPU are asynchronous and blocking may occur during buffer swaps and/or the command queue becomes full. If you're on a newer OpenGL implementation, you should use Timer Queries
.
Without seeing your implementation of display (...)
and how each of these windows differs, I can only surmise that something like VSYNC is to blame (especially when the two times you mention add up very nearly to 60 Hz). Swapping buffers with VSYNC enabled will block the calling thread until the appropriate time. You can potentially have a shorter wait the first time you do this than the second because the second will start immediately at the beginning of a VSYNC interval.
You may wish to do something useful with the CPU in-between drawing to one window and the other so that the time spent blocking is not completely wasted. Or, you might consider using multi-threaded rendering, with one thread driving each window's buffer swap. This is one case where multi-threaded rendering really does make sense.