I see that Python is still on 2.7.16. Should upgrade have included Python 3 or is that a separate thing?
OctoPrint cannot and will not change the Python version it's running under. That would be like doing a brain surgery on yourself. If you want Python 3, you have to switch it over manually or flash a new OctoPi.
I like that analogy!
As I'm on a roll asking stupid questions, what would be the consequences of not upgrading to Python 3? Will OctoPrint or plugins stop working at some point in the future?
OctoPrint will at some point drop Python 3, there are some plugins already that are Py3-only. More will come out, I personally wouldn't make a new plugin with Python 2 compatibility. More will drop it as Python 3 usage increases, and it becomes viable. Over 15% of tracked installs are currently Py3, and it is increasing more and more. See data at https://data.octoprint.org.
Not knowing anything about OctoPrint, Python or brain surgery would it not be possible to run the script after the upgrade or at least if Python 2 detected, indicate that attention is required and here's a link to the script?
At some point, yes there will have to be a notice to say you are on an outdated Python version. Not just yet, but as OctoPi 0.18 is more widely adopted then it will become easier - existing 0.17 users (or other distros that have python 3 installed) will be able to upgrade, or have the option of re-flashing to upgrade. I vaguely remember discussing the prospect of OctoPrint running the upgrade, but decided it was better to have the user manage it. Since there is a non-zero chance it could go wrong, being a major install upgrade kind of thing.
When is the cutoff date, if indeed there is one?
When I actually get time to work on moving
devel forward - which is Python 3 only already - and get that released. The original plan was early Q2 of 2021. Then the pandemic hit and my workload spiked, so now it's "when it's done". However, just because Python 2 is still supported doesn't mean you shouldn't upgrade to Python 3. So just do so ASAP please, every Python 2 based instances I no longer have to support as well is good.