i've had to add a couple of setting to solve the problem:
'spark.dynamicAllocation.shuffleTracking.timeout' 'spark.dynamicAllocation.cachedExecutorIdleTimeout'
once these were added, the behaviour was as expected