Does iMessage fallback to SMS on a per message basis?
Yes, it will.

I've experienced it a few times, if the message stays undelivered for something between one to five minutes (I haven't checked exactly), it will fallback to SMS.

This behavior can be changed in Settings > Messages > Send As SMS, checking it off will not send the message as SMS if iMessage is not available. Rechecking it will send the message not delivered (even if they were sent before).