After much trial and error I have found the best ways to tell when fish is cooked perfectly. The key is not to cook the fish through all the way when it's in the pan or on the grill. You want to warm the fish through, and start the flakes from separately from each other.
When the fillet is two-thirds of the way through it is time to flip it, and turn off the heat. Whilst you work on the rest of the plate residual heat will cook to perfection.
Look at the side of the fillet as it cooks. The flesh will turn from translucent to opaque as it cooks; when it gets two-thirds of the way up, it's time for Tip 1.
As fish cooks it gets tougher/firmer. When you press on the fish with a spatula the flakes should just start to give.
Following on with Tip 3, cooked fish is firmer and more brittle. So when you have a whole fish you can tell it's cooked when you can insert a skewer into the fattest part and go through to the bone effortlessly. Uncooked fish will be much harder to pierce.