"Occasionally" is sort of hard to work with.
If you plan on working with the History-table (ie. Find employees that switched from state 3 to 5 the past year), I'd go with option 2. And maybe, if it turns out that querying for current state is too expensive, apply option 3.
But if an employee on average has very few state-changes, and is only ever used for display purposes, then I would consider going for option 1 - but in stead of a separate table for history, just use a json-doc in a varchar-field in the employee table. Worst case, you can move the history to a separate table later - and otherwise you get all the data in one table.