don't create gaps when there span does not cover existing token and split events to match token coverage
don't just remove and add the events using the list iterator, but actually update the occupancy grid
fixed "Islands may cause spans not covering any tokens in grid" #279