Todo esta muy claro aqui
, GetLastError te devuelve un error bastante simple ERROR_SHARING_VIOLATION:
Traduccion:
La carpeta no la puedes borrar pues algun otro proceso/tu propio proceso tiene un HANDLE con FILE_SHARE_READ como dwShareMode de la misma, y hasta que dicho manejador no sea cerrado o el proceso que contiene el recurso terminado, el SO te bloqueara cualquier peticion de borrado.
Solucion:
1- Encuentra el proceso que mantiene el manejador de la carpeta y terminalo. (Esto lo puedes hacer con ProcessExplorer o cualquier app similar)
1.2 - Si ningun otro proceso tiene un HANDLE a la carpeta abierto, entonces quiere decir que tu propia app es la que lo tiene abierto cuando intentas eliminarlo en tu codigo. Intenta usar el RemoveDirectory() justo despues que cierres el manejador con FindClose() que mantienes abierto desde la llamada FindFirstFile() a la carpeta, o verifica cualquier otro lugar donde puedes haber abierto un manejador a la misma y no lo has cerrado cuando llamas a RemoveDirectory().
2- Intenta ahora eliminar la carpeta (ten en cuenta q debe estar vacia, como ya sabes)
Saludos