If the tests aren't 100% automated, they lose a tremendous amount of value. They won't be run reliably, and are a lot more error prone because of the human interaction. If you can't get it 100% automated, remove that test completely, even if it means not testing that piece of functionality for now.
As an aside, have you asked for help on stackoverflow? They may be able to give you a fairly quick solution.
I've seen that "wait for the user to do something" technique done. It's a bad idea, for a lot of different reasons, but it can be made to work in a limited context. If you do it, obviously you don't have an automated test, but rather one that requires active human observation and interaction. Which means you can't run it as part of a Continuous Integration process, you probably won't want to run it as part of an in-the-background unit-test collection, etc.
If you decide to do this anyway, the correct way to do it is to alert the user that their action is required, and to then wait (looping with pauses as necessary) for the correct result of their action. As opposed to waiting for a few minutes and hoping they did their piece of the job.
Try to find all possible workarounds.
And if nothing works classify them as non-automatable tests with proper blocker documentation. Maybe in future versions of selenium (or you application) you get some workaround for the step.