Nothing in there cares that you might be pounding keys, yelling at the PC, sweating bullets, etc. If you expect something you do to matter, you MUST revise this loop. You could see if there is data to read, and peak() at the next character if there is. If that character is an 's', break out of the loop.
Can you imagine what would have to happen in the userWantsToStop() function, so that it could return true (the user wants to stop) or false (no, the user is perfectly happy letting the servo continue moving)? I think I gave you enough hints in my previous reply.
If you are planning a more complex program it would be much better not to control the servo with a FOR loop. Look at how the control is managed without blocking in several things at a time.