It's easy enough to make the engine say it's 0.00 because of a 3-fold repetition. If you look at the relevant part of Stockfish's code, they are basically if statements that return a particular value if the condition is met. If you want to know if there's a 3-fold, you could add a
print "this is a 3-fold" command and you'll have it. I'm hard-pressed to see why it matters, though. 0.00 is 0.00, regardless of whether it's insufficient material or fortress or 3-fold or whatever.
It sounds like you want to know if the position is a dead draw or if it's still complex enough that you might be able to outplay your opponent. This is much harder to put in machine-understandable form. How would you define these things? There are certainly positions where engines have no trouble finding the best moves (and therefore all games end 1/2-1/2) while human games show it is very unbalanced.
That said, there is some effort in the computer chess community to go beyond finding the simple "best move". This started with contempt for handcrafted engines, which uses the material remaining on the board as a proxy for how complex the position is. The idea is that if you set contempt high, then the engine will play inferior moves as long as it keeps more material on the board, which leaves more scope to outplay a weaker opponent. Conversely if you set negative contempt, then the engine will simplify the position and shoot for a draw. That might be what you're looking for.
Today's strongest engines are all neural-network based, for which contempt is more difficult to implement. Neural network eval return W/D/L, which is the probability of a win, draw, or loss from that position; there is no number for complexity (and probably cannot be since you'd need a very large training set with labelled "complexity" to get started). People are trying the so-called draw score, which turns draws from worth 0.5 points to, say, worth 0.4 points. This, it is hoped, makes the engine avoid draws - after all if one move leads to a three-fold while another leads to a 10% chance of win, 80% chance of draw, and 10% chance of loss then the second move has a higher expected score and becomes preferable. But even this does not work perfectly, since your engine might assess a position as drawn while the opponent sees a big advantage, see e.g. this game where Leela saw 99.3% chance of draw on move 158, and still lost the game eventually.
Ultimately you still need a way to measure if a position is "dead", and a good way to do that doesn't exist (see this question). If you have a smart idea to measure how "live" the position is, you can probably get it published in a journal.