Нет, этого не происходит. Вы правы в том понимании, что поток работает последовательно.
Поток GUI может быть прерван, но только для запуска другого потока он не будет повторно входить в поток GUI для обработки другого события. Поток имеет только один указатель инструкций и, следовательно, может находиться только в одном месте кода, он не может быть прерван сам по себе.
Если вы испытываете что-то похожее на поток GUI, то причина кроется в другом.
Однако thead GUI может «прервать» себя, вызвав метод Application.DoEvents
.