TYP: blocks
new mypy errors with numpy 1.20

```
pandas/core/internals/blocks.py:252: error: Incompatible return value type (got "Union[ndarray, ExtensionArray]", expected "ndarray")  [return-value]
pandas/core/internals/blocks.py:1538: error: Value of type variable "ArrayLike" of "putmask_inplace" cannot be "Union[ndarray, ExtensionArray]"  [type-var]
pandas/core/internals/blocks.py:1886: error: Item "dtype[Any]" of "Union[dtype[Any], ExtensionDtype]" has no attribute "na_value"  [union-attr]
pandas/core/internals/blocks.py:1972: error: Argument 1 to "can_hold_element" has incompatible type "Union[dtype[Any], ExtensionDtype]"; expected "dtype[Any]"  [arg-type]
pandas/core/internals/blocks.py:2039: error: Incompatible return value type (got "Union[ndarray, ExtensionArray]", expected "ndarray")  [return-value]
pandas/core/internals/managers.py:925: error: Argument 1 to "get_values" of "Block" has incompatible type "Union[ExtensionDtype, str, dtype[Any], Type[object], None]"; expected "Union[dtype[Any], ExtensionDtype, None]"  [arg-type]
```

This is not a criticism. This has been the situation every time numpy types are added. more so recently with many PRs targeted at getting dtype function arguments typed.

Just wanted to highlight that it is preferable to get #39513 resolved soon. please weight in there with your thoughts. 