Is there any sound technical reason to prefer POST?
Yes, if there is a "state change" then a safe method should not be used.
See RFC7231:
Request methods are considered "safe" if their defined semantics are
essentially read-only; i.e., the client does not request, and does
not expect, any state change on the origin server as a result of
applying a safe method to a target resource
...
the GET, HEAD, OPTIONS, and TRACE methods are defined to be safe.
From a security perspective using POST is also preferred, because any corporate proxy servers (i.e. those with trusted certificates for TLS/SSL inspection) may log GET query string parameters by default (as they form part of the URL), and they will also be stored in your server logs by default.
Using POST means these values are less likely to leak places you don't expect.