I know of two "intelligent" possibilities offhand, neither of which was designed for this purpose, but both of which should work.
The first is CiscoWorks 2000; you would (labourously) define the configuration in CW and then when you wanted to restore it, "publish" it to the device.
The second is solsoft's security policy management program -- though I don't know the extent to which it would handle non-policy matters such as speed and duplex.
In the less-intelligent side, on most IOS devices, if you have SNMP write access, you can SNMP SET a tftp server address, and SET an image name, and then SET an operation code that means "the next timed action will be reboot", and then you SET the time delay until it executes that (use a 0 time delay for immediate reboot.) If all you care about is rebooting from the startup configuration you could probably get it down to two SET operations, with the first being a "just in case" and the second being the time to reboot. There is a "service policy" that needs to be enabled on the device in order for this SNMP service to be enabled.