You can make RMI call. You could also have a call to another VM, or have a STD class make the threading happen. Try to push off to a Servlet container. If you are running thhe servlet container and the application container in the same VM, you can make use of the Local interfaces of EJB2.0 to speed things up as well as the message beans.
I sould not cont on the callback option as it opens up too many issues that will not make it worth while.