Joe..
Question 3 would answer Question 1 (since a resource giving an overview without focusing on any given technique would answer that question).
Have a look at Chapter 2 "ECG Signal Analysis" of "ECG Acquisition and Automated Remote Processing" by R. Gupta et al. (Springer India 2014).
It gives a nice overview on different challenges ECG Analysis faces, and different solutions for these problems, with references to original work in case you want to dig deeper on any matter. It also gives pseudo-code in case you're interested.
I had already tried the differences method to get rid of Baseline Wander, which I found effective.
Have also a look at "Computer Aided ECG Analysis - State of the Art and Upcoming Challenges".
Also, keep in mind that it's not enough to get a "nice ECG", meaning a "visually appealing" ECG. You need to take into account how much information is lost by that filtering, and how much distortion.
So you need to test your algorithms on known signals and known noise to be able to do that and compute error, etc.
Bear also in mind that it always boils down to a compromise. Some cite Heisenberg, I quote the Rolling Stones: You can't always have what you want.
We all want fast algorithms we can implement real time, filters that only filter the noise but leave the ECG characteristics intact, 1000+Hz sampling frequency on a wearable device with unlimited battery time.
The reality is quite not that great. Hence the word "challenges".
I'm also doing my thesis on the matter, so if you have any other question, feel free to ask: I won't be the douchebag who tells you "How come you don't know this ?".