The above will turn "deep recursion" warnings off (and can be localised). After that Perl will happily recurse to exhaustion. I think the limit before complaining (and not bailing out) is 100. Obviously with your queue of 10 this limit is not reached.
Since you said that your jobs are not really asynchronous why not run them in a sequence?
Edit: removed use from the 1st line, thanks AnomalousMonk