fix: ensure event listeners are always removed at simulator stop