Macros can be multi-line, so yes, you can send multiple things. Just type one, hit return, type the other. Just like aliases, or triggers that send more than one line.
And you shouldnt need to use the sendimmediate command, just type in whatever you want sent.
Error number: -2146827264
Event: Execution of line 2 column 1
Description: Expected statement
Line in error: /world.SendImmediate "command2"
Called by: Immediate execution
It does work if I remove the /world.SendImmediate "", but I want the macro key commands to bypass the queue.
It seems like there's actually a problem with sending 2 lines in one macro. You can go around that by either putting both commands on one line, using your scripting language's convention for doing so (think that won't work in vbscript though), or put your script in an alias and send that alias from a macro.