As of now? No, I don't do sanity checks (is there a better name for it?

). It's all about speed for me now.
But when I started out, yes, I went from triple checking to double checking to where I am now. It's like a speed-accuracy production possibility curve (Economics, anyone?

)
I'll answer each step separately, most of the stuff is
not what I do now, but what I did back then when the emphasis was on accuracy rather than speed:
Number of flipped edges: I plan how I'm gonna solve them during the memo phase, i.e. setup moves + algorithm. So I can't possibly mess up on this, I'd know if I had an odd number of edges during memo and I'd re-check them. It's easy to miss a bad edge, but quite impossible to miss 2. I would suggest you do the same thing with memorization too, here's why: Say you have edges (24579A) flipped, why memorize that, convert it to a hexadecimal number, and reconvert it back during execution? You can plan your solve during the memorization, something like: (R'F)(4-flipper)(F'R), (L)(2-flipper)(L'). (Note: it's just an example, I don't know your numbering scheme, so I came up with a random solve.) In fact, I used to memorize it as (R'F4), (L2), because the setdown moves (as I like to call them

) are just simply the inverse of the setup moves. Notice the drastic reduction in amount of information you have to store? And there's a plus, you already
know what you're gonna do, so (a)you save the thinking time during the execution, and (b)you plan while you're still sighted, which has very obvious advantages - the probability of messing up is, well, zero. By the way, I use M2 now so I don't have EO issues.
Corner twists: I plan this during memorization too. Until now, I can't tell if a corner is twisted CW or CCW, really. What I
can tell is where the white/yellow (my U/D) stickers are. So, visual. I highly highly highly recommend reading Lucas' (very old) page:
http://cube.garron.us/BLD/CO.htm for memorizing corner orientation. It's an extremely efficient memorization method that takes about 2~3 seconds for me, and definitely less than 10 seconds for anyone with a little practice, and I mean just a little. And, there are no new algorithms to learn, you can always use more than one algorithm to solve cases whose "direct algorithm" you don't know. This, too, can't possibly go wrong unless you mess up during your execution. The memo system is just perfect for beginners, I wonder why not many know about it.
For parity, I guess it's harder for you to do what I do, because you mentioned that you've got trouble with sounds, but I'll mention it anyway: I don't have a fixed buffer, so I can't have more than 8 digits to memorize for corners (discounting zeros). Where I live telephone numbers have 8 digits, so I get a "feel" of how long a telephone number is, and when the string of digits I recite "feels" short (7 digits), I have parity, and I do double check its consistency with edge permutation, even until now, because I hate DNFs when you're forced to DNF because you mis-memorized. For anything less than 7, it's pretty obvious whether it's odd or even. Also, some things just become obvious after a while: If you have 6 digits and you see a permuted corner, the last one has to be permuted as well, so don't waste time double checking; If you have 5 digits or less, your gut would probably tell you to check the remaining corners. I mean, 8 is such a small number that it's nearly impossible to miss out on anything.
And finally, edge permutation. Everyone has bad solves when they just don't notice 2-cycles or 3-cycles somewhere, then they curse and they get back to work

It happens. So here's what I recommend: focus on accuracy first, once you've been doing BLD long enough with consistent successes, you get a "feel" of how many edges are left (yeah it's that "feel" thingy again), then only you move on to focus on speed. Another thing that's helped me with this problem (of not noticing remaining edge cycles) is 4x4x4 and 5x5x5 BLD. With 24 wings, the probability of missing 2 or 3 edges becomes very high, and once I got my "feel" for 24 edges, 12 edges became relatively much easier for me. Is this a lame excuse to motivate you to do big cubes BLD anytime soon?
Final note, this is just what I do, I haven't read about it anywhere or seen/heard of anyone else do it: Compartmentalize your memorized data. And come up with "missing links". How do I know that I memorize 10 instead of 11 edges? I don't count. My memory system does the counting for me. I memorize in 2 groups of 6 edges. And I think Derrick Eide does 3 groups of 4 edges (did I mention I haven't heard of anyone else doing it?

). This is what I call compartmentalization. Once I know the first number in a group of 6, I know the remaining 5. Because I chop the data up into small bite-sized chunks. If you think your memory isn't that powerful, you can do 3 groups of 4 like Derrick, i.e. see the first digit, know the next 3, which is imo manageable by anyone with a little practice.
Next you need to link the separate compartments up. One major problem I faced when I started out was that I could execute every step very fast because I pre-planned both orientation steps, and compartmentalize the permutation steps. But I always had very long delays between each step trying to recall the data in the next step, so I came up with the "missing link" concept to reduce (actually, kill) this delay. For instance, invent something to link the last digit of EO to the first digit of CO, and another image to link the last digit of CO to the first of EP, just do it in the order you solve. So not only do you link every bit of data in a compartment, you also link every compartment with something, so you'd pretty much have zero lag time during execution. I believe this "hierarchical" system of linking data is much more effective than a "linear" system, if you get what I mean (you probably don't, but never mind, I find it hard to put it in words anyway).
Whew, that's a lot said
