Its a normal Windows behaiver. Same happens in Purebasic as well BlitzMax.
You need to call a windows event to sleep the app and callback to Windows, I guess its here SHOWSCREEN as only command doing it. Here its works fine when added SHOWSCREEN just before SLEEP 50, which is the correct way to do. SHOWSCREEN is also important, even when minimized for Windows. Its might do some CPU, but you can skip update and render graphics to save CPU, and then just call SHOWSCREEN directly, so its very minimal CPU usage anyway (remember in minized mode for Windows 7, you can still see thumpnails, so yet not really sleeping).
So for Windows I cant see its a bug, other than its could been more aware when paused when SHOWSCREEN is used.
Howover this is a real bug for Android. Looked this into today, but still not working yet (also I tried public void onWindowFocusChanged(boolean hasFocus), which invoke correctly on false, but never true). I do heard its should crash on eglSwapBuffers(), but I do not seen any log that invoke flipEGL(), so its must been a C++ call error. So not sure about it yet.