Esa es una forma de hacerlo.
Es posible que ni siquiera necesite que el campo current_status sea un FK; ¿Por qué no simplemente almacenar el valor? De lo contrario, podría entrar en referencias circulares extrañas.
Otra forma sería almacenar un archivo de estado, separado de la tabla de proyectos. Cada vez que cambie el estado, inserte el estado actual en la tabla de archivo y cambie el valor de projects.status.