You should be able to write some custom code for this.
1) Use VBScripts's "Timer" function along with WScript object's "Sleep" method to do the scheduling
2) Use the Send keys method to press "Scroll Lock"(the most useless key on the keyboard) twice back to back to prevent the desktop from locking.
Create one VB script to execute QTP tests. Also create one batch file to call this VBS.
Now, if you can work with java, then write one java code which will be kept running on your machine. This code will check the time with your system clock and at the desired time, it will run the batch file.
"The simplest way I could think of is by using a Do...Loop statement with Wait statement such that QTP waits till the required time (11 hours in my case) before executing the scripts.
Would this way be feasible /advicable?"
Making QTP wait for an unduly long period is not advisable as this may lead to memory leakages over a period of time(QTP may simply hang up).
I would suggest you rather create a "wscript.shell" object and then use "wscript.sleep" for the wait. I used the same approach for a similar requirement in a project implemented 2 years ago. The QTP script needs to be launched on all business days at 6:30 AM. The scheduler script written has been working without a glitch till date. So writing reliable code for your requirement with this approach is definitely feasible.
To make your code run every day at a designated time, put the code in a while loop as shown below:
Set oShell = WScript.CreateObject("Wscript.Shell")
oShell.Run "File Name"
etc etc (based on whatever you requirement is)
Since you will be running the above piece of code as a .vbs file, in order to switch off your scheduler you will just need to end the process from the task manager.