It's been a (very) long time that I did bit-banging on an LPT port. AFAIR the acknowledge wasn't used on very fast schemes, or couldn't be. But again, this was more than 25 years ago.
And it won't be a space heater like PALs used to be :-)
Yes, if that's the only job the uC has it doesn't need to be interrupt driven. But you know how it goes. Pretty soon it also has to do the solenoid overtemp watch job, light some status LED, play a ringtone ...
Ok, that would work as well. But port writes are blazingly fast on most uC and the time it takes in terms of the number of clock cycles is predictable, can be taken into account when setting the timer value.
Old rule when using a uC: Always engage the watchdog timer and don't blindly trust on-chip POR/BOR resources. And also don't trust the LPT port not to hang up some day, there needs to be a reasonable time-out so the solenoids don't go phssssooosh.