A plug-and-play Arduino device

Hello Arduino community, it's my first post here, I've been an avid reader of this forum for ages and loved it. This place is a great help for us the confused.

My current project requires driving some motors according to configuration and positioning info sent over from an exe ran on a Windows PC. The app currently uses serial communication over USB and works fine. The problem is the user of this device needs to be able to plug it to a multitude of Windows PCs. Being able to upload this executable automatically to the PC from an Arduino-controlled memory, like an SD card, which would emulate a mass storage device containing an exe and some readme files, would be a wonderful feature. Think Huawei's 3G USB modems which act as CD drives and install their drivers when plugged to a new PC.

After a day's search on the Web, it seems to me it's not as easy as it sounds. This user: Providing a document via USB. - Project Guidance - Arduino Forum seemed to be searching for a solution to a similar problem, yet the topic provides little help. I've considered V-USB and LUFA, but from how I understand it, I'd have to choose between emulating a storage device and using an ATMega as a regular MCU, with Arduino libraries and such, but I can't have both at once. Can any of you kind readers suggest something? Maybe my approach is completely wrong and this functionality can be achieved with much less hassle?

Right now I'm considering presenting the user with a pendrive whose autorun is pointing to the exe, but it's painfully suboptimal. Splitting the task across two ATMegas, but still one USB physically visible to the end user, or changing the communication protocol from serial to something else, or reprogramming Arduino's ATMega16, are okay if needed. Switching to YUN or Pi is not an option.

How about incorporating a USB hub and USB flash drive into your solution, so that when you plug the hub into the PC the PC sees both the Arduino, and the file system, autorun configuration etc to install the drivers for it?

Good idea, it's one of those "why didn't I think of this" moments. Also might be more reliable than emulating an MSD solely on Arduino. Still, I'd be grateful for any tips on making Arduino visible to the PC as a storage device. Thanks for your time.