would like to have more granular control and just specify particular task(s) as serial, is that possible? Perhaps the intended way of doing this is to create a new playbook for those particular tasks? Seems like overkill but am willing to give it a shot (beats having to run ALL my tasks with forks 1 or serial 1)
The documentation doesn’t really answer the question though. Does that mean there’s no way to define one task as serial? In other words, serial only applies for all tasks?
Correct, a task does not allow the keyword serial to be defined on it. There’s no need to define an entirely new playbook, but you will have to declare a new play.
Move tasks that should be done in ‘serial: 1’ mode to a separate file. Include it with items iterating over hosts in a group and set some variable to a host name. Add to files in a separate task condition to check if hostname is similar to that variable.