I have rsync running on a crontab that copies her USB stick contents into OneDrive.
By this, do you mean that rsync is basically just doing a local copy from the USB stick to whatever local folder OneDrive is syncing to the cloud? If you don't want to do the rename directly on the USB stick: I'm not sure whether OneDrive would tolerate this, but perhaps you could do the rename directly inside the OneDrive directory immediately after the rsync? Another option might be an intermediate staging area, i.e. USB stick --rsync--> staging area, do rename here --rsync--> OneDrive folder; although that's of course less efficient, if it's not much data, it may be fine.
If you do want to do the rename on the USB stick: At the moment I'm not aware of any better method of checking if specific files are open than lsof (or similar tools such as fuser), which is probably not particularly efficient.