Die einfachste Lösung wäre wahrscheinlich, dass Sie Fragebogen 2 und 3 zusammen laufen lassen. Das funktioniert aber nur, wenn die beiden Fragebögen unterschiedliche Fragen verwenden. In dem Fall könnten Sie Fragebogen 2 einfach zum Bearbeiten öffnen und Fragebogen 3 aus der Navigation hinter die vorletzte Seite von Fragebogen 2 ziehen.
Gehen wir aber einmal davon aus, dass Sie in Fragebogen 2 und 3 zumindest teilweise dieselben Fragen verwenden.
(a) goToQuestionaire() stellt eine Verknüpfung zwischen den beiden Fragebögen her - wenn der erste Fall einen SERIAL hat, wird diese auch in den zweiten Datensatz übernommen.
Was im zweiten Datensatz eventuell nicht funktioniert, ist die Verwendung von mailSchedule(false, ...). Die Zuordnung der Fälle bei der Auswertung sollte aber problemlos funktionieren.
mailSchedule() wäre wahrscheinlich ohnehin besser in dem Fragebogen 2 aufgehoben. Aber wenn Sie es in Fragebogen 3 verwenden möchten, dann geben Sie die Personekennung explizit an: mailSchedule(caseSerial(), ...)
(b) bei multiLevelDown() wird die SERIAL ebenfalls übernommen, allerdings kehrt der/die Befragte nach Abschluss des untergeordneten Fragebogens wieder zum übergeordneten Fragebogen zurück.