OpenGL will introduce a synchronization point and make sure, that further asynchronous operations will not effect on any operations scheduled by former calls making use of the modified OpenGL objects.
What if glTexSubImage() (the pixel data of the second PBO should now be transfered) is reached before the first transfer has completed?
Nothing unexpected. All calls sceduled after the call to glTexSubImage will make use of the modified data. All calls scheduled before it make use of the unmodified data. The OpenGL specification mandates this.
Will it result in CPU stall-cycles?
It may, or may not. OpenGL doesn't specify this.