As far as I can tell, almost all implementations of QKD use Brassard and Salvail's CASCADE algorithm for error correction. Is this really the best known method of correcting errors in a shared sequence of random qubits, or is there a better proposition that implementations of QKD should be using instead?
Actually, there is a lot going on in the research of better and faster error correction codes for QKD. The biggest bottleneck of the CASCADE protocol is that it requires a lot of classical communication between Alice and Bob.
A lot of work has been done on LDPC codes. You can have a look to the following papers:
-Efficient reconciliation protocol for discrete-variable quantum key distribution (arXiv:0901.2140v1)
-Rate Compatible Protocol for Information Reconciliation: An application to QKD (arXiv:1006.2660v1).
Moreover, I suggest to look at the slides at https://sqt.ait.ac.at/software/projects/hipanq/wiki/Schedule where there are many talks about error correction in QKD.
Finally, regarding the applications, I would like to point out that the demostration that has been done in Tokyo was also implemented using LDPC codes (see arXiv:1103.3566v1 on page 13 for a reference).