(1) See comment #18. Strictly speaking, there is a many-to-many relationship between products and SKUs that mitigates against putting them in the one CSV file. However, if you do have a one-to-one relationship between products and SKUs, you can construct a single CSV file that has all the necessary column headings and use it as a common input file for all three uploads.
(2), (3) For this you'd have to write a module to call uc_stock_update_import_submit() (for update), or write something based on _uc_stock_update_get_csv() (to dump the CSVs) and call your module from a cron job or something. Note that the update code uses the Drupal batch API, so you might have to do some work to make this run from a cron job. See http://drupal.org/node/873132
Alternatively, you might be able to run curl or wget from a cron job to GET or POST a CSV, but you'd have to get it to authenticate to Drupal first.
(4) My guess is that it's probably OK as far as Drupal and Ubercart are concerned, but you will want to check your caching configuration and the cache headers on your pages to check that the updates will be seen in a timely fashion.
(5). Yes - after Ubercart 3.0 is released.