half-splits again forbidden; refactoring of wavefront propagation by breaking up main loop into resumable function calls