If the captain was concerned enough to imprison the entire plane, then he should have diverted immediately to the nearest airport. There's no excuse for this captain's actions if indeed the passenger's accounts are accurate and they had to wait "several hours" before landing.
I'd be curious to find out when the captain ordered the "lock down" and when they finally landed at DFW.