OnIdle ist in der Tat unabhängig von irgendwelchen Threads die du erzeugt hast.
Naja, Es wird ja geraten CheckSynchronize in OnIdle auzurufen.
Wenn man das macht, dann hat es aufeinmal ne Menge einfluss auf Threads die ihre Ausgabe mit dem Hauptthread synchronisieren.
Edit:
Hab gerade bemerkt das CheckSynchronize nie bei mir aufgerufen wird und Synchronize trotzdem ordnungsgemäß funktioniert...könnte das an FMX liegen oder an System.Classes.WakeMainThread ?