Hi! This is a neat brush-up project

Here's what I would do to fix #1 -> You'll want to keep track of what the LAST flip was, and compare it with the CURRENT flip. Try adding a "LAST" variable to the mix, and checking to see if the current flip is the same as the last one before printing the "in a row" message.
For # 2, there's ALWAYS room to make things more efficient! As for 'correct'... I'm no expert... For instance, instead of using 'touch' to create the coinflip file, you *should* be able to simply use the '> coinfile' line to create the file if it doesn't exist or clear it if it does. Or you could make it more readable with something like "echo -n > coinflips".
You also might consider defining the output file in a variable, in case you want to use a different file later, you can change it in one place instead of three.
#3 Not sure! This would be interesting to investigate. I mean, you might be able to use something like MRTG or RRDTool, but I'm sure there's something simpler...
#4 Take a closer look at your 'until' loop. It might be obvious if you do the math on how many iterations you're asking for there

I hope this helps!
-J