Implement decorator based system for limiting same async function to be running only one instance at a time