The ability to disable concurrent builds is an important feature when doing continuous deployment and running automated integration tests.
Implementing this with a distributed lock plugin (which I am currently working on) has a few benefits such as the ability to acquire and release locks at any point during the pipeline.
However, a major disadvantage of this approach is that locks are held during the pipeline which means that a build agent is used to acquire the lock. For example, if there are 4 agents and 4 commits are made on master, then 1 agent would build while the 3 others would just be maintaining a lock and 0 agents would be available for other branches or other repositories.
I think the ability to disable concurrent builds should therefore be built into Drone, at the very least per branch.