Refer to this discussion:
http://groups.google.com/group/ebean/browse_thread/thread/ddbc0eb7f5336ec3#
The problem was that Ebean starts a Timer to run cache warming queries. This had a delay of 30 seconds.
The Timer created was not a daemon... and so effectively blocked the shutdown of the JVM - hence the shutdown was effectively delayed by 30 seconds or so.
The fix was to change the Timer to be a daemon.