so to answer your question, yes it is possible to always have another block template available, one that does not depend on the transactions confirmed (or not!) in the previous block.
available in stratumv2 pools that allow for block template creation + tx sets