Thank you for your efforts and advices.
Unfortunately it seems, it is not the buttonlist what causes the problem. I removed all of the .Free-s from my code (which means the buttons and toggles are lost after the array rearrangement, but at the end, the form will free them), but the crash at the end persists.
Lead by a sudden idea, i took my old version of this program, what uses Lazarus's built-in TTabControl. (I wrote my own class, because TTabControl lacked the close button per tab.) And it still crashes at the exit. Which means, the crash is not caused by my tabbar.
And the error is always appears after the CLASSES$_$TPERSISTENT_$__$$_FPONOTIFYOBSERVERS$TOBJECT$TFPOBSERVEDOPERATION$POINTER label in the assembly source.
At this point, the tabbar has been ruled out, the threads has been ruled out... I simply don't understand why this error happens.
Maybe the dynamically created Memos and Images can do this? Can i create arrays of widgets from the editor?