Программа для бэкапа/синхронизации USB флешки
Жаль, но похоже нужной мне программы не существует.

Тогда, вот workaround, который можно попробовать использовать (сам ещё до конца всё не настроил, но проверил, вроде бы работает):

Ставим какое-нибудь приложение, умеющее запускать бэкап/синхронизацию при подключении флешки и реализованное в виде службы Windows, например Allway Sync.
Ставим USB Safely Remove.
Подключаем флешку, настраиваем бэкап.
USB Safely Remove умеет выполнять команды после подотключения флешки, перед и после отключения. Прописываем команду перед отключением «net stop [имя службы синхронизации]» и команду «net start [имя службы синхронизации]» после отключения флешки.

Всё, теперь если сделать безопасное извлечение через USB Safely Remove, то служба будет остановлена, и если она занималась копированием, то будет прервано копирование. Таким образом будет удовлетворено моё 3-е требование. Если программа синхронизации не умеет различать флешки (см. требование 2), то это умеет USB Safely Remove, можно настроить запуск службы после подключения нужной флешки.
Даже если вы напишите свою программу она не даст вам вынуть флешку во время бекапа, это же не логично. В любом случае нужно учитывать то, что система блокирует программное отключение во время использования флешки для ее же безопасности.