MRotate would do all that, plus have the option to degauss by activating a relay, the relay would activate the degauss by shorting out the monitors degauss button or however it degausses now.
However Mrotate uses the printer port. You can get around that by installing a cheap printer port card in your PC, however, you have 64 bit and as I said, i gave up trying to get mrotate to work with 64 bit.
I was working on using Mrotate with a USB I/O card instead of printer port, but thats been a while back and I never completed it.
I would use what you have for now, but keep thinking about doing it automatically. It helps to study up and do a ton of research before you jump into tearing stuff out.
Someone on here may have already developed what you need.
The beauty of using the printer port is that it has 8 outputs and 4 inputs, perfect for rotating monitors in an arcade cab. But ... oh well.
Something I thought of last night, Malaori only works for mala start up, so if you move the monitor between games, mala will not change orientation. One way around this is to place another button to tell mala to change rotation. There is a keyboard button you can assign to tell mala to rotate, but maybe you already have this covered? There is a plugin that does all this automatically, but it is designed to activate Mrotate (or another program), that turns the monitor based on game orientation. It is a plugin I wrote for Mala called startcom. It sets up Mala screen orientation and sends a command to Mrotate to turn H or V, based on the games original orientation.