That's not a good solution, every time you press a key, a new while loop starts and the old camera_Xstperson-loops never stop.
If-statements are fine with camera functions, why should they make any problems?
My advice: Return to your old code, use debug-features (don't forget DEBUG_VAR, diag_var, ...), reduce the code to a minimum until you isolate the problem.