Damn.... I have 2 small old sticks (128MB and 256MB), which some bioses emulate as floppy regardless of "usb emulation" in BIOS. Some do it only for the 128MB stick.
When booting, BIOS provides int13 services to the boot code, and those services use device IDs 0 for 1st floppy and 0x80 for 1st HDD. But these are hardcoded in the boot code which is decided by the app that makes it bootable. So if the app sees as HDD and BIOS emulates floppy, it will try to load from the HDD and it will stall because it cannot find the right files.
Regarding your problem, I don't know how to do it easy, but you probably have the FAT32 partition on the stick defined as 0x0B, and you should make it 0x0C. The difference is that with 0x0B, the cylinder-head-sector emulated values are used which differ from BIOS-to BIOS (and windows when hot-plugged), whereas 0x0C uses the LBA mapping, which is how sectors are accesses though USB interface.
So your BIOS emulates the CHS values differently that your laptop BIOS.
I don't know you technical background, but this change could be done using a hex editor (I'm using tiny hexer), loading the 1st sector of the USB stick and looking at offset 0x1C2, you should have 0x0B. 0x1BE you should see a 0x80, which is the bootable flag. Change the 0x0B to 0x0C.
This is hexdump of my 16GB stick:
[cpp]00000000 33 c0 8e d0 bc 00 7c 8e c0 8e d8 be 00 7c bf 00 |3.....|......|..|
00000010 06 b9 00 02 fc f3 a4 50 68 1c 06 cb fb b9 04 00 |.......Ph.......|
00000020 bd be 07 80 7e 00 00 7c 0b 0f 85 10 01 83 c5 10 |....~..|........|
00000030 e2 f1 cd 18 88 56 00 55 c6 46 11 05 c6 46 10 00 |.....V.U.F...F..|
00000040 b4 41 bb aa 55 cd 13 5d 72 0f 81 fb 55 aa 75 09 |.A..U..]r...U.u.|
00000050 f7 c1 01 00 74 03 fe 46 10 66 60 80 7e 10 00 74 |....t..F.f`.~..t|
00000060 26 66 68 00 00 00 00 66 ff 76 08 68 00 00 68 00 |&fh....f.v.h..h.|
00000070 7c 68 01 00 68 10 00 b4 42 8a 56 00 8b f4 cd 13 ||h..h...B.V.....|
00000080 9f 83 c4 10 9e eb 14 b8 01 02 bb 00 7c 8a 56 00 |............|.V.|
00000090 8a 76 01 8a 4e 02 8a 6e 03 cd 13 66 61 73 1e fe |.v..N..n...fas..|
000000a0 4e 11 0f 85 0c 00 80 7e 00 80 0f 84 8a 00 b2 80 |N......~........|
000000b0 eb 82 55 32 e4 8a 56 00 cd 13 5d eb 9c 81 3e fe |..U2..V...]...>.|
000000c0 7d 55 aa 75 6e ff 76 00 e8 8a 00 0f 85 15 00 b0 |}U.un.v.........|
000000d0 d1 e6 64 e8 7f 00 b0 df e6 60 e8 78 00 b0 ff e6 |..d......`.x....|
000000e0 64 e8 71 00 b8 00 bb cd 1a 66 23 c0 75 3b 66 81 |d.q......f#.u;f.|
000000f0 fb 54 43 50 41 75 32 81 f9 02 01 72 2c 66 68 07 |.TCPAu2....r,fh.|
00000100 bb 00 00 66 68 00 02 00 00 66 68 08 00 00 00 66 |...fh....fh....f|
00000110 53 66 53 66 55 66 68 00 00 00 00 66 68 00 7c 00 |SfSfUfh....fh.|.|
00000120 00 66 61 68 00 00 07 cd 1a 5a 32 f6 ea 00 7c 00 |.fah.....Z2...|.|
00000130 00 cd 18 a0 b7 07 eb 08 a0 b6 07 eb 03 a0 b5 07 |................|
00000140 32 e4 05 00 07 8b f0 ac 3c 00 74 fc bb 07 00 b4 |2.......<.t.....|
00000150 0e cd 10 eb f2 2b c9 e4 64 eb 00 24 02 e0 f8 24 |.....+..d..$...$|
00000160 02 c3 49 6e 76 61 6c 69 64 20 70 61 72 74 69 74 |..Invalid partit|
00000170 69 6f 6e 20 74 61 62 6c 65 00 45 72 72 6f 72 20 |ion table.Error |
00000180 6c 6f 61 64 69 6e 67 20 6f 70 65 72 61 74 69 6e |loading operatin|
00000190 67 20 73 79 73 74 65 6d 00 4d 69 73 73 69 6e 67 |g system.Missing|
000001a0 20 6f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 | operating syste|
000001b0 6d 00 00 00 00 62 7a 99 c8 1f c9 1f 00 00 80 20 |m....bz........ |
000001c0 21 00 0c fe ff ff 00 08 00 00 00 f8 dd 01 00 00 |!...............|
000001d0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
[/cpp]
If you instead see FAT32 or MSDOS in the 1st row, then abort.