Very cool. I think the Wikipedia page talks about different properties of different maze algorithms (longer straight corridors .. always connect start and exit ..) but it's a big and deepy mathematical thing isn't it.
I'm trying to do a maze now too, but instead of walls there's a time constraint and a travelling salesman problem, basically ;p though I will just write it up tonight.
If I understand your movement happens on keydowns? What do you think about holding down buttons?
It's nice following your commented thoughts through the sequences of code.