The above just somehow got me hooked. I'm in the process of defining something similar myself: Create an online backup using veracrypt containers, be sure the data is transvered encrypted and the password is relative save and safe.
For a start, your ideas are a little over-complicated and have some issues.
You cannot create a true random key using some script. There has to be some random seed to generate the key. THats why veracrypt requres some mouse movements to create a key. These mouse movements cannot be sctipted, since they then are less random.... On the other hand, once you have created a good key, you donnot need a new one for every backup.
Then the password handling: There are some what-ifs in there, like what if the printer is out of ink or out of paper once it prints? THe idea to not have it online is relative good, however, since you use it for backup be sure you have it once you need id. My idea for the password storage is to use a commandline based password safe. There should be one or two around. Most have relative good pasword generators for hard-to-guess passwords. Just use them to create the password.
In the end, it is my idea to use a vera-crypt container on an online storage facility. I have one that offers the webdav protocol. Since I generate the veracrypt volume locally, I know the data is encrypted once it is sent over the line. Hence using https (from the webdav protocol) is sufficient.
Now just do it on a commandline. For msWindows I'd say to use powershell, for unix/linux/macos, just use the available shell/terminal. Once you have it all commandline based dump it in a file and you have the base of the script.