Well, the most common way to detect key presses and releases is through keyboard events, but you said you tried that already... You made sure to also detect ALLEGRO_EVENT_KEY_UP events, right?
Also, is the problem only when up and left are pressed at the same time? Keyboards are pretty picky when you press multiple keys, and several combinations block all keyboard input. It makes sense: if you fall asleep on your keyboard while writing a document, you don't want to wake up to 671 pages of "g", but it does suck for playing games.
Now, I know up and left are amongst the most jarring examples, but... That only seems to happen when I press up, left, and another key. Up and left alone normally work fine without blocking. Try it on another machine, I guess.
I tried your code on my machine, and up+left works fine; the tank goes forward and rotates to the left.