Hmm, I attempted this but I'm seeing the same result. Is this what you had in mind?

Code
IF
CharacterUsedItem(CHARACTERGUID_S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406, ITEMGUID_TestLever_db55b1f7-f54f-45d2-af31-3a3aea1a648f)
AND
GlobalGetFlag("DOOROPEN", 0)
THEN
GlobalSetFlag("DOOROPEN");

IF
GlobalFlagSet("DOOROPEN")
THEN
ItemOpen(ITEMGUID_TestDoor_18d397cb-736f-4e5f-8b03-278c6e3437d9);

IF
CharacterUsedItem(CHARACTERGUID_S_GLO_CharacterCreationDummy_001_da072fe7-fdd5-42ae-9139-8bd4b9fca406, ITEMGUID_TestLever_db55b1f7-f54f-45d2-af31-3a3aea1a648f)
AND
GlobalGetFlag("DOOROPEN", 1)
THEN
GlobalClearFlag("DOOROPEN");

IF
GlobalFlagCleared("DOOROPEN")
THEN
ItemClose(ITEMGUID_TestDoor_18d397cb-736f-4e5f-8b03-278c6e3437d9);


This does the same thing as before, just with more code. Sets the flag and opens the door. Then the game evaluates the next part, sees I am using the lever and the flag is set.. so it clears the flag which closes the door.

I wish I could do something like.. "CharacterStopUsingItem" to force no other scripts to execute on the "CharacterUsedItem"