Also ich habe es jetzt hinbekommen! Ich bin zwar nicht ganz sicher, wo der Fehler war, aber ich habe es einfach nochmal ganz neu programmiert und den gesamten Ablauf mit einer einer "State Machine" in der Interrupt Service Routine gesteuert.
Also bis zu meinem nächsten Problem