So I had a bit of look and based on how you formatted the input data, it appeared that there would be the necessary number of tabs (ie 1 or more) to make the original
data line up. Since your code set the FS value to a single tab, awk says that after each tab there must be a field, even if it is empty.
Hence, Mike Smith is shorter than the previous name and required an extra tab to line the data up, hence bogus output.
This is why you will notice that my FS value uses the '+' after the tab to indicate the possibility of 1 or more.
Also the addition of the column command nicely tidies up the output for you without worrying about too much formatting yourself.
For your requirement to have an additional space at the front:
Code:
awk -F'\t+' 'x!=$(NF-1){print $(NF-1);x=$(NF-1)}{print "",$3,$NF,$1}' OFS="|" infile | column -t -s '|'