Sorry to spam the topic, but I've got many questions and a poor memory.
What's the reason for the 3 second delay at the beginning of the iso_init() routine(s)? Wouldn't it save a few bytes to do that once in loop(), possibly starting with a short delay at first and then ramping up after a few failed attempts (thinking forward to power management)? LOL, there goes the few bytes it would've saved... but power management is worth it.
Edit: N/M, that's all conditional so it wouldn't save anything. Nevertheless, what's the reason for 3s? I've got it at 300ms and it seems fine.