This is quite a common question. The best way to know if you can do this type of thing for any automation tool is to think like the following:
1) Can my tool be ran automatically upon startup (e.g. can you create some kind of service that kicks off the test tool. If yes then the following applies.
2) Record/script the activities as normal.
3) Before the activity where the reboot should occur write some kind of indicator (just a number or a word will do) to a txt file.
4) Write the reboot functionality.
5) In the beginning of your script have some code that checks the txt file for the indicator. If it is there then skip the code/function before the reboot and execute the next code/function. else run from the beginning.
Something like that should work in any of the tools if you can get it to boot up automatically on startup.
I think I remember reading about a setup where there is an automation server and automation clients. The server can reboot the clients and restart the automated test tool if the clients crash or if the need to be manually rebooted.
The part before the reboot, and the part after. Just before reboot, the script would write an entry to the windows registry (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Cur rentVersion\RunOnce) that would automatically run the second script (using your testing tool command line).