What exactly is PINB | = 0b00000001;

Just wanted to add a clarification on what I said about the atomicity of digitalWriteFast() when using a non constant value.
It depends on where you get the code. I've just looked around a bit and have seen different implementations.

While most do check for the value parameter being constant, some don't.
So be careful and look at the actual digitalWriteFast macro for the one you are using to make sure it checks for the value parameter to be a constant.

--- bill