PERF: cache_readonly for Block properties
We'll be able to cache more aggressively following each of #35417, #40574, and #40263
@simonjayhawkins IIRC we discussed what it would take to make mypy understand cache_readonly.  do you still have that available? thanks