fix: address Phase 3 code review issues
- Remove dead except block around flit_count() in _handle_exec
flit_count() handles all 16-bit inputs without raising exceptions,
so the try/except (ValueError, KeyError) block was unreachable code
- Update stale _handle_t0_write docstring to reflect current architecture
T0 is now list[int] with pack_token()/unpack_token() serialization
(future work from original docstring was already implemented in Phase 3)
- Change t0_store padding from None to 0 to match list[int] annotation
Simplifies _handle_t0_read by removing None check
Makes padding consistent with type annotation
- Update test comment in test_malformed_flit_invalid_prefix
Accurately describes what happens: flit_count(0xFFFF) returns 2,
but only 1 flit available, so truncation check catches it
- Rename test_exec_stops_at_none_sentinel to test_exec_processes_multiple_packets_until_end
Old test relied on None sentinel that no longer exists
New test verifies EXEC processes multiple consecutive valid packets