Hi,
I know this post is a little old but I believe I have information that might help. I have an old iphone with no working SIM card, and a current working iphone with a SIM card. I wanted to get imessage working on my old device. Here's what I discovered:
If iMessage says "waiting for activation," you can still send iMessages. These iMessages will go through the email listed in the "send and receive" field. However, they will not be going through your appleID, so they will not sync across devices. By taking my SIM card out of my current phone and putting it in the older model, I was able to activate iMessage fully with my appleID. However, upon removing it and using it with my current device, the old device would go back to "waiting for activation", even if I had it in airplane mode when I made the SIM switch.
TL;DR, you can iMessage with an old iPhone without a working SIM card, but you cannot iMessage through an older phone with your appleID if you don't have an active SIM card. I think this is a pretty stupid way for iMessage to work, because these problems naturally don't exist with iPod touches or Macs. Maybe Apple will fix this in the future. Maybe I'm wrong, but if anyone has the answer to using an appleID to iMessage on an older device, that would be great.
If it says "an error occurred during activation", sign out of your appleID in iMessages and try it again. It'll work that time as long as you have that working SIM card. For activation to occur, a SIM card must be present, as a hidden SMS is sent to the device. I have no idea why changing the SIM card deactivates iMessage and makes it go back to "waiting for activation", but it most definitely does, as I've done it about 3 or 4 times in different ways.