Unsichtbar würde das Programm werden, wenn du gar keine Console erstellst, ergo mit int APIENTRY WinMain [...] arbeiten.
Sicher Plaziert wäre das Programm in einem Abgelegenen Ordner des Windowsverzeichnisses - Nachteil: Aminrechte benötigt. Du könntest das Programm aber auch irgendwo auf der Platte droppen und per Hook "verschwinden" lassen - ist aber wahrscheinlich zu kompliziert. Dritte Möglichkeit wäre die Datei einfach irgendwo unter einem Unscheinbaren Namen abzulegen (Ordner eines Spiels?).
Zum Ftp Upload, ich würde dir empfehlen, eine Logdatei zu erstellen und die nicht alle paar Sekunden, sondern nach einer gewissen Anzahl Tastenschläge o.ä. hochzuladen um Traffic zu sparen.