I like your solution of modifying the com.apple.Boot.plist file to disable darkwake. I decided to pursue an alternate solution though, since the Macbook I'm trying to wake belongs to a customer and I didn't want to modify it's sleep behavior.
I was trying to wake a Macbook Pro to have a Retrospect Backup Client on that Macbook respond to the Retrospect Pro software running on a WinXP PC. I noticed that even though the Macbook would respond to ping from the XP machine, Retrospect Pro reported no response from the Retrospect Client on the Macbook. The post from Quelqu Un explains the situation well. I was not aware of the darkwake mode.
I've been using a batch file to wake the other PC clients on the network using wolcmd (from depicus.com - great source of info on WOL). The batch file tests for ping response from the desired PC and if there's no response sends a WOL magic packet to that PC. I noticed that after modifying the batch file to wake the macbook pro that the ping response was good so the WOL magic packet was never sent. Even after defeating the test for ping response the magic packet was not waking the Macbook Pro to a state that allowed response from the Retrospect Client.
Since the WOL magic packet needs to be followed by a request for a serivce running on the Mac (thanks Quelqu Un!), I tried using telnet to send a request to the IP address of the Macbook Pro on port 5900 (VNC), since I had remote mangement & vnc enabled. This seems to work, since the batch file now wakes the Macbook sufficiently for the Retrospect Client to respond and the backup proceeds.
On a windows PC the batch file is as follows. I'm sure it could be implemented from OS X as well, but I'm not as familiar with scripting in OS X. Anybody want to provide the OS X (unix) equivalent?
wolcmd 406c8f1b5fa4 192.168.35.233 255.255.255.0 7
start telnet -a 192.168.35.233 5900
sleep 45
\SysinternalsSuite\pslist telnet
if %errorlevel%==1 goto NO_TELNET
\SysinternalsSuite\pskill telnet
Notes:
A) wolcmd parameters are: MAC addr, IP addr., SNM, port (see depicus.com for more complete explanation)
B) start telnet opens telnet in a separate window so the batch file can continue
C) sleep.exe (available in the Windows Server 2003 Resource Kit) - pauses 45 seconds
D) pslist (from Sysinternals.com) tests for active telnet process
E) pskill (also from Sysinternals.com) kills the telnet process, which hangs forever if not killed
That's the core of my batch file. Be glad to submit the rest if anybody's interested. Gotta run...