You're right, and what you are describing happens regularly (this code is in production on one of our projects, and sometime the tiles aren't loaded).

I'm not sure to be able to write the specific Tile class, but I'll try.