Prevent possible endless loop in Splash::display() and handle some related edge-cases and race conditions WRT expose_done and is_visible().