Well, some steps ahead, but still not done.
The board used to hang at "REQUEST_SENSE", a command that PC sends after havng read INQUIRY data, CAPACITY and some sectors (which of course by now contain rubbish: in fact, if I double-click the icon, I'm asked to format).
Strange is, REQUEST_SENSE is handled rather easily, returning a 18-byte struct to the PC, so nothing fancy; I found out that the struct could possibly not have been initialized properly, so I added a call to the ResetSense() func, and someway I moved on.
Yet, some other problem must lie there. Though Capacity is correctly returned (63 sectors made of 512 bytes = 32768bytes= 24LC256 capacity), when Format is on, I get "unknown size" on Win2000 and some 2000000MB on Win98. Of course format fails (but this could be a problem of the low-level I2C functions... though they've been almost copied from a working project).
I also tried other capacity value, to cheat... and indeed it seems to take longer to popup the "Format" dialog, but nothing works anyway.
The sniffer is telling me that things are working rather well... The error I was getting when the device used to hang was a "0xc000000c" which should mean "BUFFER OVERRUN". No reason for this, of course, as I explained above...