more reentrant abort fixes. keep atomicity; only abort at blocking points in the code