This would block only when no conversion has started (I think). Are you sure you call this only with a running conversion? (And never twice in a row)
Thank you. Yes, I have a 1 conversion start, 1 isEnd, then 1 start, 1 isEnd, .... 5 times.
So, pretty sure those are working right.
Like I said, not yet certain where this bug came from, it only happens randomly after some arbitrary runtime when I'm not looking for it!
That seems more like an issue with all the interrupts. What you can do, for debugging, is to have each ISR toggle an output pin during its runtime. Then you can use a logic analyzer to see whats happening in the moment your problem occurs.