Great tips so far.
I've also thought of the multiple magnets solution, it would offer a smoother output.
0.1Hz => only the initial delay is 10s, afterwards the timer is only re-adjusted, taking into account how much time has already passed. If the timer (PWM generation) is reset each time it would make for a very jittery output. This is actually what happens when some people implement POV displays or fan controllers.
Error and jitter would be acceptable - for example outputting a running average - but a slow response not.
Interesting reading:
https://www.romanblack.com/one_sec.htm (as well as other pages on that site)
VCO: if there is a uC already involved, a VCO wouldn't help much, especially if it requires a divider.
MSP430 & GCC: actually I've switched to Energia a few years ago and never looked back. I've only needed CCS for USB stuff on TM4C123. I think with platform.io it should be even easier.
Not sure if floating point is needed, fixed-point integer would work just as well since the dynamic range of the system is very small.
Trigger Hall switch: I don't want to cut into wires. This is more of an exercise than anything else. Just looking for the most low-power way to trigger such a switch, whether it's a speaker or some turns of wire wound around the switch.