After all my subtle attempts to evade project completion time estimate
requests ("when will this be done?"), I would like to directly
communicate to my boss that I cannot and do not want to be estimating
my project time completions.
Everyone can give estimates, although many would prefer not to do so.
I suspect you would be better off indicating that you don't feel confident giving estimates, and asking how you might learn to get better at it.
Essentially, I am asking if there is a way, in the modern workplace
dynamic, to tell my boss that I will be done when I am done and to
stop beating a dead horse asking me for estimates that we both should
know mean nothing.
In most shops where I have worked, estimates are an essential portion of the SDLC. If your shop is like that, then there would be no way for you to decline to provide estimates when asked.
I work as a Sr. Software Developer, I get my job done but I never know
ahead of time how long it will take me to complete it. Does this make
me an incompetent worker?
I wouldn't use the term "incompetent" here. But most Senior Developers I know are willing to provide an estimate when asked. And most folks can come up with some very rough idea of how long a task might take. Never being able to do so does make you seem a bit out of the norm.
Should I ask for a demotion or change jobs that will accommodate my
commitment preference?
In many companies, a demotion wouldn't help. Even less-than-Senior Developers are required to provide estimates in many shops.
Is giving time estimates a critical duty in project oriented work?
I've worked in many companies where it was indeed a critical part of the job for the software folks to provide estimates on a regular basis.
I've worked at a few that didn't typically require much estimation, but they seem to be rare, and with Agile methodologies seem to be disappearing.
Under the theory of "You never know until you ask" you could just directly ask your boss "Are estimates required here? Can I do my work without providing estimates?" and see what kind of reaction you get. (I don't suggest using phrases like "I will be done when I am done" or "stop beating a dead horse" though, Those wouldn't be received well by the managers I know).
My suggestion is to learn how to estimate better, so that your attempts won't be so inaccurate, or feel so meaningless. One place to start is to keep close track of your actual hours, to provide a historical basis on which you can draw your future estimates. That's how I learned. You should also ask if there is company-provided training that would help with this and other parts of your company's SDLC.
You might find that you are unnecessarily worried about accuracy. Or you might find that better requirements might make you feel more confident in your estimates.