and also to process transactions atomically, which is probably actually a harder problem than routing in a distributed setup
Yeah, I was wondering how you were planning to handle that. A node could end up holding an IOU to the last link and then suddenly the transaction is canceled and he has an IOU from someone he doesn't trust.
Making the IOUs conditional on a transaction occurring in the bitcoin block-chain would resolve that, but would have a 1 hour or so delay before a transaction can be confirmed expired.