Tu problema es que no es sleep quien debe ir en segundo plano, sino la llamada al proceso java.
 
Por aquí te explican varias soluciones: 
http://stackoverflow.com/questions/6...ecessary-delay 
1. Ejecutar en una subshell en segundo plano, y matar el proceso luego de cierto tiempo:
( /path/to/slow command with options ) & sleep 5 ; kill $! 
2. Una función que hace lo que necesitas, en bash4: 
http://www.bashcookbook.com/bashinfo...ripts/timeout3 
3. la utilidad timeout, del paquete coreutils.