>It's much better way, because candidate tag will ensure data integrity, and 'active' field will simplify and speed querying. Just imagine, that for some reason 'active' task is not the most recent one. It might not happen but it should convince you :).
I've had a similar model, with various things happening to a piece, and their records written in a, say, actions table. In the piece table, there was always a FK into the actions, pointing to the active one. It was a requirement - the users needed to know exactly what's going on with each piece at the moment. IMO, that approach would benefit the problem at hand as well.