Actually, looking at the Future interface, I'm not so sure this makes sense.  Our future doesn't return anything, and will not be used with a scheduled executor (since we control the execution as part of the message send process).  Because of this, I think it would be confusing to implement Java's Future interface unless we changed our message queue to be based on the other java concurrent structures (which I'm not sure is a good idea).