Yes Widgets won't run in USB storage
This is true if you use Android's implementation of apps to SD. However, if you fool the phone into thinking it's data isn't on the SD, which is actually the same flash memory that is soldered to the board anyways, you can do whatever.
Maybe some Dev's can jump in here.
I did a hack on my Optimus, when it was running CM7, that did just this, but that is because CyanogenMod looks to a specific directory to see if there are any scripts it needs to run after boot.
The prerequisites were a ROM that looked for scripts to run at boot, and an sd-ext partition. I made mine 1GB. The script basically moved the current contents of the data directory to the sd-ext partition, and mounted the sd-ext partition as data.
This is along the lines of what most apps2sd does. I think Froyo and forward moves them on an app by app sym-link basis, where my script mounts a different partition as data.
It would take some research, and I don't have that time right now. The link below is for the original script. Feel free to attempt or investigate a solution..
http://forum.androidcentral.com/lg-optimus-s-rooting-roms-hacks/66462-mod-homemade-apps2sd-updated.html