Another revisiion required to meet your last needs...
Formula in E2 changed slightly to:
=IF(ROWS($A$1:$A1)>SUMPRODUCT(--($A$2:$A$100<>""),--($B$2:$B$100="")),"",INDEX($A$2:$A$100,MATCH(SMALL(IF($B$2:$B$100="",$C$2:$C$100),ROWS($A$1:$A1)),$C$2:$C$100,0)))
confirmed with CSE and copied down
or to reduce calcs... add =SUMPRODUCT(--($A$2:$A$100<>""),--($B$2:$B$100="")) to a blank cell, like D2, then formula in E2:
=IF(ROWS($A$1:$A1)>$D$2,"",INDEX($A$2:$A$100,MATCH(SMALL(IF($B$2:$B$100="",$C$2:$C$100),ROWS($A$1:$A1)),$C$2:$C$100,0)))
Bookmarks