A couple changes I recommend you make, that might help, are to not use Calendar, it requires to much unnecessary work. As:
Calendar stop = Calendar.getInstance();
Calendar start = Calendar.getInstance();
long lstart = start.getTimeInMillis();
long lstop = stop.getTimeInMillis();
int istart = (int) (long) lstart;
int istop = (int) (long) lstop;
long elapsed = ((istop - istart) / 1000);
istart = (int)start.getTimeInMillis();
can be done much easier using java.lang.System. See example:
long startTime = System.currentTimeMillis();
long stopTime = System.currentTimeMillis();
long elapsedTime = (stopTime - startTime) / 1000;
See what I mean?
Another thing, is you do not need to use the key number like you did below:
if(hypspd == true && e.getKeyCode() == 16) { }
Instead, take advantage of java.awt.event.KeyEvent. I also cleaned the code up, to make it easier to read for this example.
int key = e.getKeyCode();
if (hypspd == true && key == KeyEvent.VK_SHIFT) {}
Basically, using the KeyEvent, you can get a more visual representation of what key you are choosing, instead of trying to use the actual KeyCode.
I am not sure if this will fix the problem with your game freezing, if not let me know, and I will investigate further. Also, please let me know if the changes help you at all!
Cheers!