La soluzione al tuo problema consiste nell'utilizzare un thread che cicla all'infinito finchè una certa variabile non viene settata.
L'applicazione, quando tu premi esc, setta la variabile del thread che si ferma.

Io non ti so dire come creare un thread in C (lo so fare per Linux, ma ogni sistema operativo ha le sue chiamate per la creazione del thread).

Qualcuno che conosce bene il C te lo saprà dire meglio.


Ciao.