We don't have to invalidate page in AllocatePage() if we don't make any changes. We also should not assert on deallocating non-present pages, just return early :)
I had weird problems with interrupts but everything should work now