Manual slide-in animation using delta time
The following makes the assumption  that all durations are totaled together (as duration) and should give a smoother animation. with a pause based on the original box width (presently height);

void OnGUI() {
    float progress = elapsedTime / duration;
    float leftPositon = progress * positionFromLeft - boxHeight;
    float width = (progress * (boxWidth + positionFromLeft)) - positionFromLeft;

    if (leftPositon &gt; positionFromLeft){
        leftPositon = positionFromLeft;
    }

    if (width &lt; boxHeight) {
        width = boxHeight;
    }
    else if ( width &gt; boxWidth){
        width = boxWidth;
    }

    GUI.Box (
        new Rect (
            leftPositon,
            positionFromBottom,
            width,
            boxHeight
        ),
        boxString
    );
}