While the end of North Carolina-Iowa State was a shitshow, it was a fair one. Even if you give the Tar Heels every benefit of the doubt, the rules were interpreted correctly given the scenario. We're going to try and illustrate why here.
Let's start with DeAndre Kane's game-winning basket. (That's it, right above.) The NCAA rulebook reads that in the final 59.9 seconds of the game, the clock stops after a referee recognizes a successful field goal (which, the rulebook defines, is completed once a ball passes through the net). The ball is completely through the net with 1.6 seconds remaining, so the clock operator got this right.
That leaves us with calculating how much time elapsed between the inbounding of the ball and when North Carolina's timeout was recognized. The total, as you can see in the video at the top, is one second and 19 frames; at 29.97 frames per second, this is 1.634 seconds, which elapses fully the remaining time on the clock. (Remember that clocks hold on the last digit; when the clock hits 0.0, the game is over.)
Of course, Roy Williams is furiously signaling for a timeout well before it's recognized; we're not sure why he'd call for a timeout with the ball still in the backcourt and less than a second remaining. We're forced to assume he had made it clear to the referees before the ball was inbounded that he wanted a timeout once the ball crossed midcourt; this is certainly the way his players reacted. But why? As evidenced by the play, it's almost impossible to dribble the ball to midcourt in such a short time.
Several people have claimed UNC was signaling for timeout because they still thought there were 1.6 seconds left once they reached midcourt—but the fact Roy Williams is trying to call for one before this somewhat defuses this. It's unfortunate the clock operator fucked up, and we'll discuss tomorrow why the way the NCAA handles clock issues at its tournament is such a disaster. But the clock was true when the winning shot fell, UNC knew how much time they had left, and their strategy wasn't fit for that situation. It's therefore appropriate they weren't provided a chance to change it.