Factor out step_cas and fix it
Split step_cas
Handle cas in race detection
Don't detect a race between two same calls to cas