I first had the following if/elif statements in my while loop, and then I tried taking them out of the while loop to see If that would fix it. Both ways didn't work. Maybe it's something in my getFrontX() method?
if car1.getFrontX() == WINDOW_WIDTH:
message = Text(Point(WINDOW_WIDTH/2, WINDOW_HEIGHT/2), "Red car wins!")
message.setSize(10)
message.draw(window)
elif car2.getFrontX() == WINDOW_WIDTH:
message = Text(Point(WINDOW_WIDTH/2, WINDOW_HEIGHT/2), "Blue car wins!")
message.setSize(10)
message.draw(window)
elif car1.getFrontX() == WINDOW_WIDTH and car2.getFrontX() == WINDOW_WIDTH:
message = Text(Point(WINDOW_WIDTH/2, WINDOW_HEIGHT/2), "It's a tie!")
message.setSize(10)
message.draw(window)