Assuming that EC2 is on a shared network with S3, you could do something like the following:
CLIENT <-UDP-> EC2 Instance <-TCP-> S3
Not certain if it is worth the hassle, though.
As seen in the tracerts that I posted, while S3 is not on the direct subnet of EC2, it is certainly much much closer. However, without having tested it, I am rather certain that the added complexity and latency of putting an EC2 based UDP proxy in betweeen the colo servers and S3, probably wouldn't be worth it.