Microsoft fit all of those criteria except the main criteria in SF.
Generally, you would only need to be in the office if you have a meeting ( as long as you get your work done).
Depending on your team, you may or may not be expected to work over 40 hours a week. On my team, we are encouraged to work 40 hours with no overtime.Even if we need to stay in late for a bug fix, we would come in late or leave early the next day.