What is the ideal type of barcode for paper tickets?
First, about the USB barcode reader: at my previous job (QA at a label printer company), we had one from Scanology. It worked as a keyboard device, the scanned data is sent to the pc as if it were typed. So you don't need any special software.


Code 39 has no error correction, but even a single misread line won't result in wrong data, because it simply won't produce a valid character. So you either get valid data, or you get nothing.
A major advantage of code 39 is that you don't need barcode software, you can simply use a barcode font.
Code 128 is slightly better than code 39 in terms of error detection, but still no fault tolerance. And you can't use a barcode font. In your case, you would use 128A (0-9, A-Z and a few special chars).
If your most critical factor is fault tolerance, then I would suggest QR, with high error correction setting, which gives up to 30% redundancy. This means that up to 30% of your QR code can be unreadable before the scanner gives up. The Wikipedia page on QR shows an example of a torn QR code that is still readable: http://en.wikipedia.org/wiki/QR_code#Error_correction
Another advantage is that it can be scanned in any direction, and it's a quite popular format.
Data Matrix and PDF-417 are similar to QR in terms of fault tolerance, but they are not widely supported for smartphones. I scanned thousands of QR and PDF-417 codes during my time as QA engineer at that label printer company, and I found a lot of high quality QR scanning software for Android and iPhone, but hardly any for PDF-417 and Data Matrix. I assume the situation will be the same (or worse) for Windows Phone.


My advice:


Easy implementation: Code 39. Use a Code 39 barcode font. Works with cheaper barcode scanners.
Very high fault tolerance: QR at level H (High). Use the ZXing library. Handheld USB barcode scanners may cost a tiny bit more.